gpt4 book ai didi

iphone - 根据 UITableViewCell 的宽度设置可变高度 - iPhone

转载 作者:行者123 更新时间:2023-12-03 19:22:28 26 4
gpt4 key购买 nike

在 iPhone 中,tableview 内容宽度为 320 或 300,具体取决于样式。然而当Ipad上台后,我们开始根据自己的设计使用不同宽度的tableview。

一个问题是,在某些情况下,我们根据单元格的字幕文本大小来计算单元格的高度。文本高度取决于内容宽度,而单元格高度取决于文本高度。如果宽度是300或320就可以了。但认为我使用 500 pix 宽的分组样式 TableView ,并且无法计算减小的内容宽度。由于这个问题,我们无法根据其内容计算调用的高度。

我们可以获得有关单元格内容宽度的信息的唯一位置是子类化的layoutsubview方法。然而,heightForRowAtIndexPath 在layoutSubview 方法之前被调用,我们没有有关缩小单元格的内容宽度的信息。

所以我们需要一个好的方法来计算分组样式表格 View 单元格的真实宽度。

我会很高兴获得任何帮助。

谢谢。

M 阿里·卡利斯坎

最佳答案

终于解决了分组tableView的宽度问题。标准 320 宽度的填充大小为 10(一侧),通过有趣的数学计算根据宽度而变化。处理这个数学问题的简单方法是根据宽度范围使用固定值。下面的代码对 4.0 有效,我没有在任何其他 iOs 版本上进行测试。

请将返回的内边距大小乘以 2,以找到分组样式 tableView 的总减少量。例如,如果 320 像素宽的 tableView 的 paddign 大小为 10,则 contentWidth 为 320 - (2.10) = 300。

CGFloat GetTableViewPaddingSize(CGFloat tableViewWidth)
{
if (tableViewWidth < 401) {
return 10;
} else if (tableViewWidth < 547) {
return 31;
} else if (tableViewWidth < 560) {
return 32;
} else if (tableViewWidth < 573) {
return 33;
} else if (tableViewWidth < 586) {
return 34;
} else if (tableViewWidth < 599) {
return 35;
} else if (tableViewWidth < 612) {
return 36;
} else if (tableViewWidth < 625) {
return 37;
} else if (tableViewWidth < 639) {
return 38;
} else if (tableViewWidth < 652) {
return 39;
} else if (tableViewWidth < 665) {
return 40;
} else if (tableViewWidth < 678) {
return 41;
} else if (tableViewWidth < 691) {
return 42;
} else if (tableViewWidth < 704) {
return 43;
} else if (tableViewWidth < 717) {
return 44;
} else {
return 45;
}
}

关于iphone - 根据 UITableViewCell 的宽度设置可变高度 - iPhone,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4900279/

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