0

在我的应用程序中,我有两个在 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

你能告诉我我在这里做错了什么吗?我应该删除约束吗?我能做这样的事吗?

谢谢是提前!

真挚地,

佐利

4

1 回答 1

1

看起来您的自定义约束和自动调整大小的蒙版约束正在发生冲突。使用此行来避免生成它并根据需要添加其他约束。

self.iPhoneMainScrollView.translatesAutoresizingMaskIntoConstraints = NO;
于 2013-01-29T15:23:35.663 回答