我正在使用自动布局,并且我已将选项前导空间设置为超级视图(常量 0),将尾随空间设置为超级视图(常量 0)并在表格视图中水平居中以超级视图。
即使从横向模式返回时,表格视图变得可移动,您可以拖动它我似乎没有附加到超级视图的边缘,这似乎是因为表格视图在横向模式下更宽并且当它返回纵向模式时,表格视图右侧有一些空白空间来填充空间不再占用。
我在每次重新定位时都调用此代码:
- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
{
[General addLeftRightConstraintsToView:_detail1TableView inRelationToSuperview:self.navigationController.view];
}
这是我用来更新布局约束的类方法:
+ (void)addLeftRightConstraintsToView:(UIView *)view inRelationToSuperview:(UIView *)superview
{
// Left Space to Superview
NSLayoutConstraint *leftSpaceConstraint =
[NSLayoutConstraint constraintWithItem:view
attribute:NSLayoutAttributeLeft
relatedBy:NSLayoutRelationEqual
toItem:superview
attribute:NSLayoutAttributeLeft
multiplier:1.0
constant:0.0];
// Right Space to Superview
NSLayoutConstraint *rightSpaceConstraint =
[NSLayoutConstraint constraintWithItem:view
attribute:NSLayoutAttributeRight
relatedBy:NSLayoutRelationEqual
toItem:superview
attribute:NSLayoutAttributeRight
multiplier:1.0
constant:0.0];
[superview addConstraint:leftSpaceConstraint];
[superview addConstraint:rightSpaceConstraint];
}
有任何想法吗?