- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在创建一个 iMessage 扩展程序,其中对于扩展的演示文稿样式,我想使用 UINavigationController
。我正在尝试使用以下函数将导航 Controller 添加为 MSMessagesAppViewController
的 subview :
private func present(viewController: UIViewController) {
viewController.view.frame = view.frame
addChildViewController(viewController)
viewController.didMove(toParentViewController: self)
view.addSubview(viewController.view)
}
我原以为导航 Controller 会以传统方式显示,其导航栏刚好在 iMessage 本身的顶部栏下方。请参阅下图了解我的预期结果:
但是,view.frame
似乎实际上延伸到 iMessage 顶部栏下方。因此,我的导航 Controller 的导航栏隐藏在 iMessage 的顶部栏下方。然而, ScrollView 本身的内容 View 无需进一步定制即可正确定位。实际效果请看下图:
显然,我可以将导航 Controller 的框架设置为刚好在顶栏下方开始。但是,我正在寻找不太依赖硬编码位置的解决方案。如果这样做, ScrollView 也不会在 iMessage 顶部栏下方继续以达到半透明效果。
理想情况下,导航栏将显示在 iMessage 顶部栏的正下方,就像默认情况下的 ScrollView 一样。
有人知道解决这个问题的方法吗?
最佳答案
经过一番深思熟虑,我找到了一个非常棘手的解决方案。我仍在接受反馈和其他答案。
可以通过创建一个初步的 layoutView
来实现上述目标,它被限制在使用 AutoLayout
的布局指南中。然后,通过设置 UINavigationController
的框架来匹配布局 View 的框架,它实际上只会占据可见区域。
您可以使用 Storyboard
设置一个像我这样的 View ,如下所示:
然后在您的容器 View Controller 中(在我的例子中是 createStickerViewController
)只要满足约束,就将您的 UINavigationController
的框架分配给布局 View 的框架:
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
// Update frame after constraints have been satisfied for layoutView
pickAssetNavigationController.view.frame = layoutView.frame
}
结果是导航 Controller 仅占据实际可见区域,因此导航栏按预期放置在 iMessage 顶部栏的正下方(请参阅原始问题中的图 1)。
关于ios - UINavigationController 作为 MSMessagesAppViewController 的 subview ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41079911/
我正在 swift3 中为 i 消息应用程序实现贴纸包应用程序 我的代码是这样的 func loadStickers() { for i in 1...6 { if let
问题 在 iOS 10.2 上 didSelect() 仅在第一次选择消息时调用,但不会在第二次选择同一消息时调用(在第一次选择发生后)。例如: 在我的消息应用程序处于事件状态时单击收到的 MSMes
我创建了一个 iMessage 应用程序来发送从图像转换而来的 MSSticker。 我已经实现了以下重写方法: override func didStartSending(_ message: MS
我正在尝试弄清楚如何在我的 iMessage 应用扩展中显示样式为 UIAlertControllerStyleActionSheet 的 UIAlertController。 问题是,调用时显示的操
当我的 MSMessagesAppViewController 将presentationStyle从 compact 更改时至expanded并返回compact ,我的 UITableView 的
我正在尝试弄清楚如何在我的 iMessage 应用程序扩展中显示样式为 UIAlertControllerStyleActionSheet 的 UIAlertController。 问题是,操作表在调
我正在创建一个 iMessage 扩展程序,其中对于扩展的演示文稿样式,我想使用 UINavigationController。我正在尝试使用以下函数将导航 Controller 添加为 MSMess
我有一个新的 iMessage 扩展项目,我在其中尝试了 2 种构建导航堆栈的方法: 在我的 Storyboard 中,我将入口点设置为 UINavigationController,它以我的 MSM
我是一名优秀的程序员,十分优秀!