添加约束而不进行自动布局

时间:2013-08-09 13:41:39

标签: ios uiview position constraints autolayout

我正在构建一个带有包含UICollectionView的模态视图的应用程序,在它下面是一个包含两个按钮的视图(验证/取消)。

我的UICollectionView中的行数可以根据数据而改变,并且事先不知道它,所以我想添加一个约束来始终将我的按钮保持在collectionView下面30px。

我没有使用自动布局,因为我有一些动画效果更好,没有它,所以我不知道如何以编程方式添加这些约束。

有没有人知道怎么做?

非常感谢你的帮助

1 个答案:

答案 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.

相关问题