我一直在尝试创建一个容器 View Controller ,该容器 View Controller 为iOS 7中的 View Controller 提供UINavigationController和UITabBarController所提供的一些重叠 View 。为了正确地执行包含的 View 布局,我已经尝试了关于实现的所有想法容器和包含的 View Controller 中的-bottomLayoutGuide,但是没有运气。调用了该方法,但似乎未使用该值。
我在https://github.com/stefanfisk/custom-layout-guides上放了一个简单的示例,但是在那里我什至无法调用accessors。
最佳答案
我发现当您在代码中设置约束时,例如
[self.view addConstraints:[NSLayoutConstraint
constraintsWithVisualFormat:@"V:[topLayoutGuide][mainView]"
options:0
metrics:nil
views:@{@"topLayoutGuide" : self.topLayoutGuide, @"mainView" : self.mainView}]];
它崩溃与:
2013-10-16 22:23:27.119 Custom Layout Guides[46840:a0b] -[LayoutGuide superview]: unrecognized selector sent to instance 0x8c80c80
2013-10-16 22:23:27.124 Custom Layout Guides[46840:a0b] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[LayoutGuide superview]: unrecognized selector sent to instance 0x8c80c80'
奇怪的是,自动版式尝试在版式指南上调用
superview
,因为它只应符合UILayoutSupport
协议(protocol)。我还注意到
topLayoutGuide
和bottomLayoutGuide
声明为readonly
:@property(nonatomic, readonly, retain) id<UILayoutSupport> topLayoutGuide
@property(nonatomic, readonly, retain) id<UILayoutSupport> bottomLayoutGuide
关于uiviewcontroller - 是否应该可以在UIViewController的子分类中实现topLayoutGuide和bottomLayoutGuide?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19411676/