以编程方式添加约束

时间:2013-12-25 05:38:07

标签: ios cocoa

我在scrollview中有一个collectionview和其他视图。我需要以编程方式添加约束以确保它适用于所有设备。

CollectionView / Gallery位于UIScrollView中。它在约束之前有效。

我正在使用下面的代码将collectionview粘贴到右侧,但我收到错误 由于未捕获的异常'NSGenericException'而终止应用程序,原因:'无法在视图上安装约束。约束是否引用了视图子树之外的内容?那是违法的。约束:

//constraint
NSLayoutConstraint *bottomSpaceConstraint = [NSLayoutConstraint constraintWithItem:self.galleryView
                                                                         attribute:NSLayoutAttributeRight
                                                                         relatedBy:NSLayoutRelationEqual
                                                                            toItem:self.scrollView
                                                                         attribute:NSLayoutAttributeRight
                                                                        multiplier:1.0
                                                                          constant:0.0];
[self.galleryView addConstraint:bottomSpaceConstraint];

1 个答案:

答案 0 :(得分:1)

高度和宽度以外的约束必须添加到包含视图或层次结构中最高。

您可能会发现滚动视图不容易或清楚如何设置内部项目的约束。

在这种情况下,您可以为滚动视图内容执行旧学校事务,也可以在滚动视图文档视图中创建中间视图。

滚动视图很棘手,因为它们有一个剪辑视图,用于确定文档视图的可见范围。