我一直在尝试创建一个容器 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)。

我还注意到topLayoutGuidebottomLayoutGuide声明为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/

10-10 21:03