UIView layoutConstraint怪异的行为,排在最前面

时间:2019-01-21 15:17:47

标签: ios objective-c uiview ios-autolayout

我有一个表视图作为子视图(contentView是超级视图)。它的最大约束值为190,但在iPhone 6上始终保持最高值(origin.y为0.0)。但是,在iPhone X上,它的工作原理完全正常。

- (void)adjustHeightOfViews {

    //adjust contentview-height to tableview-height
    self.tableViewTopConstraint.active = YES;
    self.tableViewTopConstraint.constant = 190;

    self.tableViewHeightConstraint.constant = 0.0f;
    for (int i = 0; i < [_cellTitles count]; i ++) {
        self.tableViewHeightConstraint.constant += [self.tableView rectForRowAtIndexPath:[NSIndexPath indexPathForRow:i inSection:0]].size.height;

        }        
        self.contentViewHeightConstraint.constant = self.tableViewHeightConstraint.constant + 500.0f;


    self.tableViewTopConstraint.constant = 190;
}

viewheights是在我的AdjustHeightOfViews方法中设置的,我在viewDidLayoutSubviews中调用了该方法(我在这里尝试在viewDidAppear和其他地方调用该方法无法解决问题)。

这是什么问题?

编辑

当我在cellForRow中禁用[celllayOutIfNeeded](当然我需要)时,问题消失了,所以很奇怪!

-> tableView之后具有功能正常的topConstraint

0 个答案:

没有答案