Ios 为什么重新加载数据会重置UITableView的高度?
为了让我的问题可以理解,这里是我代码的摘录:Ios 为什么重新加载数据会重置UITableView的高度?,ios,uitableview,height,reloaddata,Ios,Uitableview,Height,Reloaddata,为了让我的问题可以理解,这里是我代码的摘录: [UIView animateWithDuration:0.5 animations:^{ taskTable.frame = CGRectMake( taskTable.frame.origin.x, taskTable.frame.origin.y, taskTable.frame.size.width, 127 ); } completion:^(BOOL fi
[UIView animateWithDuration:0.5 animations:^{
taskTable.frame = CGRectMake(
taskTable.frame.origin.x,
taskTable.frame.origin.y,
taskTable.frame.size.width,
127
);
} completion:^(BOOL finished) {
[self.taskTable reloadData];
}];
这是基本情况:taskTable是UITableView,它集成在UIViewController中。第一个块工作正常,taskTable的高度降低0.5秒后
我的问题从完成块开始:重新加载taskTable后,taskTable再次等于原始高度。顺便说一下,原始高度是在情节提要中设置的
有人能告诉我原因吗?我能阻止这种行为吗
以下是故事板的快照:
要回答问题,请执行以下操作: 可以禁用自动布局来解决问题,但这不是最好的方法 如何解决问题:我定义了superview顶部和tableView之间的约束。之后,我在代码中添加以下内容(taskTableTop就是该约束): 我不知道是否有更简单的方法
如果有人准备好了更好的答案,请随时告诉我(我们);o) 要回答问题,请执行以下操作: 可以禁用自动布局来解决问题,但这不是最好的方法 如何解决问题:我定义了superview顶部和tableView之间的约束。之后,我在代码中添加以下内容(taskTableTop就是该约束): 我不知道是否有更简单的方法
如果有人准备好了更好的答案,请随时告诉我(我们);o) 您是否绝对确定调用
重新加载数据时会发生这种情况?或者以后会发生什么事?可能该表是由其父表自动调整大小的?请尝试以下操作:从完整表中删除重新加载的数据,然后查看是否发生了什么情况。如果什么也没发生,试着搜索你在代码中设置高度的地方。如果我注释掉重载数据,一切正常。我已经注释掉了所有可能的内容,但是在我运行reloadData之后,高度设置为原始高度。我将从故事板添加快照,可能有问题。请尝试从您的xib文件中禁用自动调整大小。好的,它会起作用(在我的例子中,我禁用了自动布局)是否有自动布局的解决方案,或者它是一个错误?您是否绝对确定在调用重新加载数据
时会发生这种情况?或者以后会发生什么事?可能该表是由其父表自动调整大小的?请尝试以下操作:从完整表中删除重新加载的数据,然后查看是否发生了什么情况。如果什么也没发生,试着搜索你在代码中设置高度的地方。如果我注释掉重载数据,一切正常。我已经注释掉了所有可能的内容,但是在我运行reloadData之后,高度设置为原始高度。我将从故事板添加快照,可能有问题。请尝试从您的xib文件中禁用自动调整大小。好的,它会起作用(在我的示例中,我禁用了自动布局),是否有自动布局的解决方案,或者是一个错误?
[self.view removeConstraint:taskTableTop];
[self.view addConstraint:[NSLayoutConstraint constraintWithItem:taskTable
attribute:NSLayoutAttributeTop
relatedBy:NSLayoutRelationEqual
toItem:jobDesc
attribute:NSLayoutAttributeBottom
multiplier:0
constant:size.height + 38]];