Max*_*eod 7 uinavigationbar uibarbuttonitem autolayout
我喜欢将我的视图创建为独立的Xib文件,然后实例化它们并添加为子视图.
因此,在使用a时UINavigationBar,我希望能够做同样的事情,首先创建我的自定义视图 - 从Xib - 然后将其作为自定义视图添加到UIBarButtonItem:
UIBarButtonItem *anItem = [[UIBarButtonItem alloc] initWithCustomView:_myCustomView];
Run Code Online (Sandbox Code Playgroud)
然后添加到导航栏:
self.navigationBar.topItem.rightBarButtonItems = @[ anItem, anotherItem ];
Run Code Online (Sandbox Code Playgroud)
到现在为止还挺好.
现在,_myCustomView使用自动布局(AL),我认为这没有问题.不是这样的.我已经尝试了一切.没有任何效果.我甚至尝试将自定义视图添加为具有导航栏的控制器的子视图.认为作为视图层次结构中的兄弟姐妹,AL会将其视为常规视图UINavigationBar.
那也行不通.控制器updateViewConstraints被调用但从未应用过.视图的初始框架保持不变CGRectZero.好像AL看到视图位于a之上UINavigationBar,即使是兄弟,也决定它不需要布局.
当然,我已经尝试了bringSubviewToFront,translatesAutoresizingMaskIntoConstraintstranslatesAutoresizingMaskIntoConstraints等等.后者给了可爱的:
由于未捕获的异常'NSInternalInconsistencyException'而终止应用程序,原因:'执行-layoutSubviews后仍需要自动布局.MyNavigationBar的-layoutSubviews实现需要调用super.
所以,问题是,是否有人从Xib加载了AL的自定义视图,并成功将其设置为customViewon UIBarButtonItem?on ?如果是这样,怎么样?
看起来像iOS Autolayout 和 UIToolbar/UIBarButtonItems的副本
UIBarButtonItems不继承自UIView,因此可能不完全支持在其中使用基于自动布局的自定义视图。听起来你必须做预自动布局的事情,直到问题解决。我建议提交一个错误。
编辑:通过预自动布局,我的意思是直接操纵视图的框架。
| 归档时间: |
|
| 查看次数: |
4117 次 |
| 最近记录: |