2

我需要在 Popover 中创建一个基于视图的 tableview,如下所示:

  • Tableview 应该放在 Popover 中(Popover 高度应该与 tableview 相同)。
  • 每行都应包含一个视图。
  • 每个行视图将包含 3 个标签。
  • 标签应根据其文本高度自动调整大小。
  • 基于 3 个标签高度,单元格行高应调整大小。
  • 根据所有单元格行,tableview 高度应调整大小。
  • 根据 tableview 高度,Popover 应该调整大小。

我以静态格式完成了此操作,但我需要以更动态的格式执行此操作(将来我应该能够使用相同的类和方法添加更多行)。

我面临的主要问题是,我无法计算单元格视图的大小,tableView:heigthOfRow:因为此时我不知道标签的文本。所以我只是在 loadView 本身中创建了 tableview 单元格并保存在数组中,并在 tableview 委托方法中从数组中获取。但我认为这是错误的做法。

注意:在加载视图本身时,将给出 tableview 的所有数据。标签不可编辑。

4

1 回答 1

0

Cocoa 系统根据 superview 调整子视图的大小,我认为您正在寻找的场景是根据子视图大小调整超级视图的大小。以下2个解决方案我可以立即提出建议,

1.您可以选择在每个子视图的大小变化时发布通知,并让超级视图立即观察。

2.在案例 3 标签中使用全局变量来确定每个子视图的大小,并在基于视图的表视图中使用 API 来计算 finalRect。

希望这会有所帮助:)祝您有美好的一天。

于 2013-06-28T04:59:50.170 回答