0

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

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

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

有谁知道该怎么做?

非常感谢您的帮助

4

1 回答 1

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。

于 2013-08-09T14:11:08.757 回答