【发布时间】:2013-01-13 04:56:12
【问题描述】:
在我的应用程序中,我有两个在 IB 中创建的顶级 UIView。一个是 UIViewControllers 视图,它有一个 UIScrollView 的子视图。另一个顶级 UIView 是要进入 UIScrollView 的内容。这部分工作正常,我将 UIScrollView 的 contentsize 设置为另一个 UIView 的大小,并且在纵向模式下一切正常。 但是,如果我切换到横向模式, UIScrollView 会很好地调整大小,但它的子视图保持在左上角,但我希望它位于水平中心。 所以我创建了这个约束并将其添加到 UIScrollView:
NSLayoutConstraint* iPhoneTextFieldContainerAlwaysInHorizontalCenter = [NSLayoutConstraint
constraintWithItem:self.iPhoneTextFieldContainerView
attribute:NSLayoutAttributeCenterX
relatedBy:NSLayoutRelationEqual
toItem:self.iPhoneMainScrollView
attribute:NSLayoutAttributeCenterX
multiplier:1.0
constant:0];
但是当我切换到横向模式时,得到这个约束异常:
( NSAutoresizingMaskLayoutConstraint:0x76dacb0 h=-&- v=-&- UIView:0x76d6eb0.width == UIViewControllerWrapperView:0x76d5b10.width, NSAutoresizingMaskLayoutConstraint:0x76d7e70 h=--& v=--& UIView:0x76d3110.midX == + 160, NSLayoutConstraint:0x76d7030 UIScrollView:0x7680f10.trailing == UIView:0x76d6eb0.trailing, NSLayoutConstraint:0x76d6ff0 H:|-(0)-[UIScrollView:0x7680f10]
(名称:'|':UIView:0x76d6eb0), NSLayoutConstraint:0x76d7330 UIView:0x76d3110.centerX == UIScrollView:0x7680f10.centerX, NSAutoresizingMaskLayoutConstraint:0x76deb70 h=-&- v=-&- UIViewControllerWrapperView:0x76d5b10.width == UINavigationTransitionView:0x76d1ab0.width, NSAutoresizingMaskLayoutConstraint:0x75a3b60 h=--- v=--- V:[UIWindow:0x91979a0(480)], NSAutoresizingMaskLayoutConstraint:0x7595510 h=-&- v=-&- UILayoutContainerView:0x76a5da0.height == UIWindow:0x91979a0.height, NSAutoresizingMaskLayoutConstraint:0x759e020 h=-&- v=-&- UINavigationTransitionView:0x76d1ab0.width == UILayoutContainerView:0x76a5da0.width)
将尝试通过打破约束来恢复 NSLayoutConstraint:0x76d7330 UIView:0x76d3110.centerX == UIScrollView:0x7680f10.centerX
你能告诉我我在这里做错了什么吗? 我应该删除约束吗?我可以这样做吗?
先谢谢了!
此致,
佐利
【问题讨论】:
标签: ios autolayout