0

我正在使用自动布局,并且我已将选项前导空间设置为超级视图(常量 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];

}

有任何想法吗?

4

1 回答 1

0

这有效:

- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
{
    [_details2TableView reloadData];
}
于 2013-06-01T23:04:28.370 回答