我有一个UITableView
,其中有很多行可以推送DetailViewController
,具体取决于选择。此详细信息视图包含UIImageView
和几个UILabels
(例如书籍说明,书籍评论等)。在viewWillAppear
中,我为这些商店分配了适当的内容,以便显示所选行的内容。我的问题是文本可能是一个句子,或几个段落。所以,如果我有一个用于书籍描述的插座而另一个用于书籍评论,我应该如何正确定位这些组件,以便它们的水平距离始终相同?我想创建一个UIWebView
并在那里加载动态生成的HTML,但必须有一个更清洁的方法,对吧?
如果有帮助,这是一个视觉效果:)
------------------------------
| Description |
| [multiple lines go here] |
| |
| [Image] |
| |
| Comments |
| [multiple lines go here] |
------------------------------
答案 0 :(得分:3)
在布局UITableView时,如果您使用UILabel作为描述和注释,您可以使用以下内容确定大小:
CGSize labelSize = [nameLabel.text sizeWithFont: nameLabel.font
constrainedToSize: CGSizeMake( actualWidth, MAXFLOAT )
lineBreakMode: UILineBreakModeWordWrap];
一旦你知道Description的高度,你可以使用CGRect等来适当地定位UIImageView。然后用这样的方式计算UITableView行的高度:
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
答案 1 :(得分:1)
使用-sizeThatFits:和-sizeToFit创建自定义视图类并在-layoutSubviews中执行布局。
布局代码不属于视图控制器。