我正在构建一个带有包含UICollectionView的模态视图的应用程序,在它下面是一个包含两个按钮的视图(验证/取消)。
我的UICollectionView中的行数可以根据数据而改变,并且事先不知道它,所以我想添加一个约束来始终将我的按钮保持在collectionView下面30px。
我没有使用自动布局,因为我有一些动画效果更好,没有它,所以我不知道如何以编程方式添加这些约束。
有没有人知道怎么做?
非常感谢你的帮助
答案 0 :(得分:0)
我不确定收藏视图。但是,下面使用标准视图,因为UICollectionView是一种UIView,那么代码也可以使用集合视图
NSLayoutConstraint *bottomConstraint=[NSLayoutConstraint constraintWithItem:buttonA attribute:NSLayoutAttributeBottom relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeBottom multiplier:0.45 constant:0];
NSLayoutConstraint *widthConstraint=[NSLayoutConstraint constraintWithItem:buttonA attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1 constant:95];
NSLayoutConstraint *heightConstraint=[NSLayoutConstraint constraintWithItem:buttonA attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1 constant:95];
NSLayoutConstraint *leftConstraint=[NSLayoutConstraint constraintWithItem:buttonA attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeLeft multiplier:1 constant:20];
[self.view addConstraints:@[bottomConstraint,widthConstraint,heightConstraint,leftConstraint]];
以上基本上相对于视图布置了buttonA。但是,要使用此功能,应关闭自动布局(如您的情况)。
底部约束表示此约束与按钮A相关,并将作用于其属性NSLayoutAttributeBottom(底部),底部将出现在正好0.45 *(视图底部)。
宽度约束指定它与按钮A相关并将作用于其宽度。宽度不依赖于任何其他对象(toItem为nil),它的常量值为95.