几天来我一直在摆弄这个问题,但我似乎无法解决问题。
我正在尝试构建一个类似于以下模型的 UITableView:
- 外部布局:UITableViewCell
- 红色布局:具有单个 UIView 的独立 .xib UIView
- 蓝色布局:内部布局。如第二个单元格中所述,其中几个应该能够存在于单个红色布局中,并彼此叠加。
据我所知,这是在 UI 上布局的最佳方式。但是,无论我尝试什么,我似乎都无法获得单元格的高度(对于 GetHeightForRow 方法)。
加载和添加 View 不是问题,问题是在加载它们之后,用数据填充不同的 UI 元素,并获取它们的大小。
我试过使用 SizeToFit,但它似乎对 UILabels 有影响的唯一元素。即使当 UILabel 的框架更改为 300 高度并且我在包含标签的 UI 上调用 SizeToFit 时,它(UIView)仍然保持在 320x100。这意味着当它被渲染时,它看起来完全不对。
我尝试计算高度的方式与在 https://stackoverflow.com/a/18746930/2520789 上接受的答案中的第 4 点非常相似.也就是说,在内存中创建一个单元格,并用每一行的数据填充它,然后获取该单元格的高度。
最佳答案
用这个
-(CGFloat) heightForText:(NSString *)text withWidth:(CGFloat) textWidth{
CGSize constraint = CGSizeMake(textWidth, 20000.0f);
CGRect rect = [text boundingRectWithSize:constraint
options:(NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingUsesFontLeading)
attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:14]}
context:nil];
CGFloat height = rect.size.height;
height = ceilf(height);
// NSLog(@"height %f", height);
return height;
}
关于c# - iOS 设计具有可定制内容的 UITableViewCell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30934179/