自动布局约束与dynamicvariables?
有可能有一个dynamic常数/乘数自动布局约束( NSLayoutConstraint
)?
例如,这将是一个沼泽标准NSLayoutConstraint
:
NSLayoutConstraint *constraint = [NSLayoutConstraint constraintWithItem:obj1 attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:obj2 attribute:NSLayoutAttributeLeft multiplier:1 constant:0];
那么这里就是这个约束的一个变化,而是一个常量中的一个dynamicvariables:
NSLayoutConstraint *constraint = [NSLayoutConstraint constraintWithItem:obj1 attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:obj2 attribute:NSLayoutAttributeLeft multiplier:1 constant:scrollView.contentOffset.x];
第二个将采用scrollview
的contentOffset
并将其用作常量。 但是,已经尝试过了,它只使用约束条件下存在的偏移量。
我希望它有约束更新常量,滚动时如果滚动。 这样它会继续使用最新的contentOffset
。
这可能吗? 谢谢。
当然是。
事实上,这就是他们的目标。 当你animation视图等…你需要能够改变约束。
直观上,可写的NSLayoutConstraint
的唯一属性是constant
属性。 (大声笑)
你的代码虽然不完全正确。
创build约束,您将首先为其创build一个属性…
@property (nonatomic, strong) NSLayoutConstraint *leftConstraint;
然后创build它…
self.leftConstraint = [NSLayoutConstraint constraintWithItem:obj1 attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:obj2 attribute:NSLayoutAttributeLeft multiplier:1 constant:0];
然后编辑已经存在的约束…
self.leftConstraint.constant = scrollView.contentOffset.x;
然后,您需要强制视图重新布局子视图…
[self.view layoutIfNeeded];
- 构建像Lego这样的应用程序—教程11
- 一些滚动后,UITableViewdynamic单元格高度才会正确
- iOS的topLayoutGuide使用iOS 7和iOS 8之间的子视图控制器的区别
- 是否有可能在UIScrollView放大和缩小UIImageView,但坚持自动布局居中?
- UIScrollView无法使用自动布局放大iOS7
- 如何在界面构build器中对视图进行约束来满足Xcode 8中的所有iphone屏幕
- 带有Interface Builder的iOS8自动调整静态TableView单元格
- UITableView tableFooterView显示在UITableView的顶部 – 错误
- 使用自动布局约束dynamic调整表格视图单元格大小