我正在使用自定义的演示控制器来做类似于UIAlertView
的东西。我希望它在键盘显示时向上移动。在UIKeyboardWillShowNotification
处理程序中,我获取新键盘框架,将其存储在属性中,然后调用:
self.presentedView.frame = [wself frameOfPresentedViewInContainerView];
在我的实现中,我考虑了当前键盘的高度,来计算-frameOfPresentedViewInContainerView
的应该位置。这个方法虽然可以完美地工作,但是直接修改self.presentedView
的frame让人感觉有些不妥当。我尝试了各种组合的setNeedsLayout
和layoutIfNeeded
方法来触发容器视图的布局,但除了直接设置其frame之外,没有任何其他方法使呈现的视图移动。是否有更好的方法来避免直接修改frame呢?