2016-11-07 3 views
2

Я пытаюсь добавить пользовательское уведомление в iOS 10, которое использует уведомления с сильным прессом. Я хочу программно добавить представление в центр контроллера вида, который наследуется от UNNotificationContentExtension, но все, что я получаю, это белый экран. Содержание добавляется, когда я даю ему кадр, как это:Невозможно использовать ограничения AutoLayout для UNNotificationContentExtension

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) { 

    } 

} 

который выглядит следующим образом: enter image description here Но когда я пытаюсь с помощью AutoLayout программно (с PureLayout обертке), используя этот код:

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) { 

    } 

} 

В результате: enter image description here

Что может заставить AutoLayout не работать в этом контроллере? Я также тестировал его с помощью интерфейса, поэтому я довольно смущен.

ответ

0

При программировании вы должны помнить, что установить translatesAutoresizingMaskIntoConstraints на фальшивый или автоматический макет не будет вести себя так, как вы ожидаете.

+0

Это определенно то, что я пропустил, но это все еще не исправить проблему. Если я установил цвет фона self.view на черный, фон сделает то, что я ожидаю. Как только я добавляю одно ограничение в myView, я получаю пустой экран. – tdon

Смежные вопросы