gpt4 book ai didi

ios - UITableViewCell 不响应 setNeedsLayout

转载 作者:行者123 更新时间:2023-11-29 02:08:18 29 4
gpt4 key购买 nike

我有一个分组格式的 UITableView,其中有几个单元格。单元格中有一个 UIView,我要向其添加另一个 UIView。当我更新第一个 UIView 的框架时,它不会改变它的位置和大小。

如果单元格离开屏幕并再次出现在屏幕上,UIViews 会正确地重新对齐自己,因此正在应用实际的转换,只是重新渲染没有正确发生。

这方面的代码就在我的cellForRowAtIndexPath中:

[cell.cellMoney setBackgroundColor:[UIColor clearColor]];

[cell.cellMoney.subviews makeObjectsPerformSelector:@selector(removeFromSuperview)];

UIView *sellMoneySubView = [UIMoneyDisplay createViewWithAmount:item.min_sale_unit_price fontSize:17.0];
[cell.cellMoney setFrame:CGRectMake(cell.frame.size.width-sellMoneySubView.frame.size.width-20, 7, sellMoneySubView.frame.size.width, sellMoneySubView.frame.size.height)];

[cell.cellMoney addSubview:sellMoneySubView];

[cell setNeedsLayout];

我添加到第一个 UIView 的子 UIView 已正确添加和呈现,只是第一个的位置变得奇怪。

哦,我也在 Storyboard中使用 AutoLayout。

补充:我修复了部分问题,但标题仍然有效。我还有一个包含需要通过网络下载的图像的单元格,但该单元格也不响应任何形式的布局调用。

我通过删除中间 View 并直接添加到单元格的 contentView 解决了 UIView 的位置问题。

最佳答案

而不是这个 [单元格 setNeedsLayout]使用 [cell layoutIfNeeded]

[cell.cellMoney setBackgroundColor:[UIColor clearColor]];

[cell.cellMoney.subviews makeObjectsPerformSelector:@selector(removeFromSuperview)];

UIView *sellMoneySubView = [UIMoneyDisplay createViewWithAmount:item.min_sale_unit_price fontSize:17.0];
[cell.cellMoney setFrame:CGRectMake(cell.frame.size.width-sellMoneySubView.frame.size.width-20, 7, sellMoneySubView.frame.size.width, sellMoneySubView.frame.size.height)];

[cell.cellMoney addSubview:sellMoneySubView];

[cell layoutIfNeeded]; //use this
return cell;

这可能对你有帮助:)

关于ios - UITableViewCell 不响应 setNeedsLayout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29557721/

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