2015-09-26 13 views
6

Dies ist meine Warnung, die perfekt funktioniert. Ich möchte ein Bild zur Warnung hinzufügen, das neben dem Text angezeigt wird, wenn die Warnung angezeigt wird, und ich bin in einer SKScene in SpriteKit, wenn es einen Unterschied macht.Hinzufügen eines Bildes zu einem UIAlertController

var alertController = UIAlertController(title: "How to Skate", message: "Tap the screen to perform a trick and jump over the obsticles (You can grind on rails) The game will end when you hit a highlighted red, orange or yellow obsticle. Thats it! + Image", preferredStyle: UIAlertControllerStyle.Alert)  
alertController.addAction(UIAlertAction(title: "Cool!", style: UIAlertActionStyle.Cancel, handler: nil)) 
self.view?.window?.rootViewController?.presentViewController(alertController, animated: true, completion: nil) 

Antwort

6

Sie können eine UIImageView als Subview zu Ihrem UIAlertController hinzuzufügen.

var imageView = UIImageView(frame: CGRectMake(220, 10, 40, 40)) 
imageView.image = yourImage 
alert.view.addSubview(imageView) 

Dies ist, wie Sie in UIAlertController tun:

let alertMessage = UIAlertController(title: "My Title", message: "My Message", preferredStyle: .Alert) 

let image = UIImage(named: "myImage") 
var action = UIAlertAction(title: "OK", style: .Default, handler: nil) 
action.setValue(image, forKey: "image") 
alertMessage .addAction(action) 

self.presentViewController(alertMessage, animated: true, completion: nil) 
+1

Diese Ansätze sind nicht konform. Es fügt einem Schaltflächenbereich effektiv ein Bild hinzu und beeinflusst die Bemaßung anderer Schaltflächen in der Warnungsansicht. Es ist auch wahrscheinlich, dass die Zugänglichkeit für diesen Ansatz nicht kompatibel ist. Apple hätte es möglich gemacht, dies sofort zu tun, aber ohne diese Option erscheint ein benutzerdefinierter Alarm, der aus einer UIView erstellt wurde, als der beste Ansatz und hat den Vorteil, alle Elemente zu steuern. – user4806509

3

Sie können wie folgt tun.

let imageView = UIImageView(frame: CGRectMake(220, 10, 40, 40)) 
    // imageView.image = UIImage(named: "ic_no_data") 
    let alertMessage = UIAlertController(title: "My Title", message: "", preferredStyle: .Alert) 

    let image = UIImage(named: "Image") 
    let action = UIAlertAction(title: "OK", style: .Default, handler: nil) 
    action.setValue(image, forKey: "image") 
    alertMessage .addAction(action) 

    self.presentViewController(alertMessage, animated: true, completion: nil) 
    alertMessage.view.addSubview(imageView) 
3
let alertMessage = UIAlertController(title: "My Title", message: "", preferredStyle: .alert) 
    let action = UIAlertAction(title: "OK", style: .default, handler: nil) 
    action.setValue(UIImage(named: "task1.png")?.withRenderingMode(UIImageRenderingMode.alwaysOriginal), forKey: "image") 
    alertMessage .addAction(action) 
    self.present(alertMessage, animated: true, completion: nil) 

Swift 3

0

empfehle ich Ihnen diese Bibliothek verwenden, um ein benutzerdefiniertes Dialog wirklich einfach zu erstellen:

https://github.com/vikmeup/SCLAlertView-Swift

Sie einfach Ihr Bild erstellen haben Programmgesteuert anzeigen und zu seiner Unteransicht hinzufügen:

let imageView = UIIMageView(frame: CGRectMake(x,10,180,25)) 
imageView.image = UIImage(named:"image.jpg") 
imageView.layer.borderColor = UIColor.greenColor().CGColor 
subview.addSubview(imageView) 

Hoffe es hilft Kumpel!

Verwandte Themen