autolayout – iOS 10消息扩展 – 使用Storyboard Segue时布局错误

前端之家收集整理的这篇文章主要介绍了autolayout – iOS 10消息扩展 – 使用Storyboard Segue时布局错误前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在消息扩展应用程序中使用Segues时,布局变得混乱.
有没有办法解决这个问题,同时仍然使用storrybord segues?

截图:
(注意:第一个和第二个View / ViewController是相同的.segue类型无关紧要)

扩展的演示风格:


紧凑的演示风格:


更新1:

在segue之后,顶部和底部布局指南会重置

>紧凑:

> top:应该是:0但是:20
> bottom:应该是:44但是:0

>扩大:

> top:应该是:86但是:20
> bottom:应该是:44但是:0

附:有人可以创建一个新的“消息扩展”标签吗?

解决方法

我希望这并不总是必要的,但我最终使用约束出口,presentationStyle变量和viewDidLayoutSubviews()的组合来克服这个错误/疏忽.

在我的DetailViewController中:

@IBOutlet weak var myViewTopConstraint: NSLayoutConstraint!
var presentationStyle: MSMessagesAppPresentationStyle?

override func viewDidLayoutSubviews() {
    super.viewDidLayoutSubviews()
    if presentationStyle == .expanded {
        myViewTopConstraint.constant = 86
    } else {
        myViewTopConstraint.constant = 0
    }
}

在我的MainViewController中:

override func willTransition(to presentationStyle: MSMessagesAppPresentationStyle) {
    if let detailController = presentedViewController as? DetailViewController {
        detailController.presentationStyle = presentationStyle
    }
}

如果它有所不同,我的segue会以模式形式呈现为Page Sheet.

猜你在找的iOS相关文章