gpt4 book ai didi

ios - 为什么reloadData会重置UITableView的高度?

转载 作者:行者123 更新时间:2023-11-29 13:19:59 24 4
gpt4 key购买 nike

为了让我的问题更容易理解,这里是我的代码的摘录:

[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 中。第一个 block 正常工作,taskTable 在高度上减少 0.5 秒后。

我的问题从完成 block 开始:重新加载 taskTable 后,taskTable 再次等于原始高度。原来的高度是在storyboard里面顺便设置的。

有人能告诉我这是什么原因吗?我可以阻止这种行为吗?

这是 Storyboard的快照:

enter image description here

最佳答案

给出问题的答案:

您可以禁用自动布局来解决问题,但这不是最好的方法。

我是如何解决这个问题的:我在 superview 的顶部和 tableView 之间定义了一个约束。之后,我在代码中添加以下内容(taskTableTop 是该约束):

[self.view removeConstraint:taskTableTop]; 

[self.view addConstraint:[NSLayoutConstraint constraintWithItem:taskTable
attribute:NSLayoutAttributeTop
relatedBy:NSLayoutRelationEqual
toItem:jobDesc
attribute:NSLayoutAttributeBottom
multiplier:0
constant:size.height + 38]];

我不知道是否有更简单的方法来做到这一点。

如果有人准备好更好的答案,请随时告诉我 (us) ;o)

关于ios - 为什么reloadData会重置UITableView的高度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14606460/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com