c# - iOS 设计具有可定制内容的 UITableViewCell

标签 c# ios uitableview xamarin

几天来我一直在摆弄这个问题,但我似乎无法解决问题。

我正在尝试构建一个类似于以下模型的 UITableView:

 iOS Design Issue

  • 外部布局: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/

相关文章:

ios - 使用 UITableViewAutomaticDimension 在顶部插入行时保持 UITableView 偏移

ios - 在每个 UITableViewCell 中显示备用 View - iOS

c# - 从文本文件读取会创建三个点

c# - 使用 @@TRANCOUNT 有用吗?

c# - 有没有办法为 EF 模型自动创建 CRUD(目前是 DB First)

ios - 应用程序内的逐向导航路线数据源,例如位智?

iphone - 如何在用户单击 UITableViewCell Accessory DetailDisclosureButton 时显示选项

c# - 未经检查的异常(例如 C#)与 Java 类异常有何不同?

ios - 如何使用 AVPlayer addperiodictimeobserverforinterval 函数更新 uilabel?

ios - 重用单元格和滚动的 UICollectionView 问题