Zev*_*erg 15 cocoa-touch uikit ios uipresentationcontroller
我正在使用自定义演示控制器来制作类似的东西UIAlertView.我希望它在键盘显示时向上移动.在UIKeyboardWillShowNotification处理程序中,我抓住新的键盘框架,将其存储在属性中,然后调用:
self.presentedView.frame = [wself frameOfPresentedViewInContainerView];
Run Code Online (Sandbox Code Playgroud)
在我的实现中-frameOfPresentedViewInContainerView,我考虑了当前的键盘高度.
这很有效,但self.presentedView直接修改框架感觉有点脏.我试图与不同排列的容器视图触发布局setNeedsLayout和layoutIfNeeded,但没有引起呈现视图的不仅仅是直接设置它的框架移动等.
有没有更好的方法来做到这一点,而不仅仅是自己改变框架?
小智 5
您需要更新preferredContentSize您提供的 VC。
演示文稿控制器不知道演示文稿完成后所呈现的 VC 的布局将如何以及何时更改。它只知道它的大小和执行转换所需的位置。
但是展示控制器有一个很好的委托方法继承自UIContentContainer:preferredContentSizeDidChange(forChildContentContainer container: UIContentContainer)
所以你应该做的是:
preferredContentSize右后containerView演示控制器属性的 布局传递| 归档时间: |
|
| 查看次数: |
1337 次 |
| 最近记录: |