私のアプリには、IB で作成した 2 つのトップレベルの UIView があります。1 つは UIViewControllers ビューで、UIScrollView であるサブビューがあります。もう 1 つの最上位レベルの 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.widthViewTransition == UIN 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
ここで私が間違っていることを教えてもらえますか? 制約を削除する必要がありますか? 私はそのようなことをすることができますか?
よろしくお願いします!
心から、
ゾリ