字体更改时自动调整 uiLabel 和 uiTableViewCell 大小的 iphone 代码?

标签 iphone ios uitableview autosize

谁能总结一下有助于解决这个问题的 Objective-C 代码的关键部分。

目标 - 在用户更改字体大小后自动调整 UITableView 的大小。因此,如果用户增加或减少字体,(a) uiLabel 高度应该改变以确保它们很好地包含文本,并且 (b) uiTableViewCell 高度也应该调整。

假设是:

  1. UITableView 已经通过扩展 创建自定义单元格 View - 即在 NIB 中创建一个新 View 内容 View 的表单 UITableView 单元格
  2. 每个习俗 单元格有四个 UILabel,形成一个 2 x 2 模式的 UILabels - 即两个 顶线和底线两个
  3. 当用户增加字体时 的水平间距 UILabels 将保持不变, 但是标签高度会 改变

所以我假设我会包括挑战/问题(并希望有人可以发布一些示例代码来回答)

  1. 这里的起点是一个已经在 InterfaceBuilder 中布局的自定义 UITableViewCell 可以吗? (或者解决方案是否要求它完全以编程方式构建)?
  2. 如何计算标签的高度?这只是使用 NSString 方法“sizeWithFont:minFontSize:actualFontSize:forWidth:lineBreakMode:”,我是否需要添加边距等?
  3. 如何以编程方式动态增加标签的高度 - 您使用哪种方法以及如何更改高度本身
  4. 如何确保当顶部的 UILabel 扩展和增长时,它会自动下推第二行的 UILabel?这是默认情况下发生的,还是您必须使用特定的属性/设置来确保发生这种情况。
  5. 如何在发生上述情况后自动增加 TableViewcell 的高度。在哪种方法中执行此操作,以及如何以编程方式执行增加和重绘。

希望这是有道理的。
谢谢

最佳答案

  1. 您可以基于 XIB 文件作为默认布局,然后在运行时稍后调整位置/大小。
  2. 是的,使用该方法计算所需的高度。您需要自己在标签之间添加边距。
  3. 更改标签的框架。
  4. 您需要根据第一行标签的 x、y、高度 + 边距计算第二行标签的 x、y。
  5. 使用以下方法 Hook 并返回新高度:
    • (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath

关于字体更改时自动调整 uiLabel 和 uiTableViewCell 大小的 iphone 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5216055/

相关文章:

ios - 从右到左的 Cocoa Touch 界面

iphone - 检查设备是否为 iPad

iphone - firebase token 为空,并且在我的 testFlight 中不断调用 token 刷新

iphone - 如何在 iOS 上执行 DNS 查询

ios - 是否允许任意 iOS 部署目标?

ios - CORS 问题(IONIC 3)

swift - 带有 Xib 错误的 UItableView 部分标题 View - Swift

objective-c - 强 vs 弱 - 如何定义可能连接或不连接到 IBOutlet 的属性?

iphone - iPhone 中的 Facebook 集成

ios - Swift:将 Facebook JSON 中的名称、照片和封面设置为变量不起作用。