2016-11-07 7 views
2

force pressリッチ通知を使用するカスタム通知をiOS 10に追加しようとしています。私は、プログラムでUNNotificationContentExtensionを継承したビューコントローラの中央にビューを追加したいが、私が得るのは白いスクリーンだ。UNNotificationContentExtensionでAutoLayout制約を使用することができません

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 をしかし、私はこのコードを使用して(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に1つの制約を追加すると、空の画面が表示されます。 – tdon

関連する問題