Ich versuche, eine benutzerdefinierte Benachrichtigung in iOS 10 hinzuzufügen, die die Force Press Rich-Benachrichtigungen verwendet. Ich möchte eine Ansicht programmgesteuert zur Mitte des View-Controllers hinzufügen, die von UNNotificationContentExtension erbt, aber alles, was ich bekomme, ist ein weißer Bildschirm. Der Inhalt hinzugefügt wird, wenn ich ihm einen Rahmen wie folgt geben:Kann keine AutoLayout-Einschränkungen für UNNotificationContentExtension verwenden
import UIKit
import UserNotifications
import UserNotificationsUI
class NotificationViewController: UIViewController, UNNotificationContentExtension {
override func viewDidLoad() {
super.viewDidLoad()
let myView = UIView()
myView.backgroundColor = UIColor.red
myView.frame = CGRect(x: 0, y: 0, width: self.view.frame.size.width, height: self.view.frame.size.height)
self.view.addSubview(myView)
}
func didReceive(_ notification: UNNotification) {
}
}
die wie folgt aussieht: Aber wenn ich versuche Autolayout mit programmatisch (mit dem PureLayout Wrapper) mit diesem Code:
import UIKit
import UserNotifications
import UserNotificationsUI
class NotificationViewController: UIViewController, UNNotificationContentExtension {
override func viewDidLoad() {
super.viewDidLoad()
let myView = UIView()
myView.backgroundColor = UIColor.red
self.view.addSubview(myView)
myView.autoPinEdge(toSuperviewEdge: .top)
myView.autoPinEdge(toSuperviewEdge: .left)
myView.autoMatch(.width, to: .width, of: self.view)
myView.autoMatch(.height, to: .height, of: self.view)
}
func didReceive(_ notification: UNNotification) {
}
}
Was würde dazu führen, dass AutoLayout in diesem View-Controller nicht funktioniert? Ich habe es auch mit dem Interface Builder getestet, also bin ich ziemlich verwirrt.
Das ist definitiv etwas, das ich vermisst habe, aber es hat das Problem immer noch nicht behoben. Wenn ich die Hintergrundfarbe von self.view auf schwarz setze, tut der Hintergrund, was ich erwarte. Sobald ich dem myView eine Einschränkung hinzufüge, erhalte ich einen leeren Bildschirm. – tdon