可以将UITableViewController定制为非常紧凑/小字体吗?

时间:2011-02-28 06:57:15

标签: iphone ios uitableview

我想开发一个在字体大小和行高方面非常紧凑的视图。

是否可以自定义UITableViewController,以便您使用的字体大小/行高是什么?事实上,更一般的问题是UITableViewController易于定制,以便您可以在其中放置您想要的东西,并将其用于显示您的自定义单元格的框架?

有兴趣知道这里是否有任何gottcha,如果有什么是下一个选项?是否应该直接使用绘图类型命令“绘制”自己的界面?

(试图确定在阅读方面的挖掘位置)

感谢

3 个答案:

答案 0 :(得分:3)

如果您的所有单元格都是同质的,则可以调整rowHeight UITableViewController实例的UITableView属性。

self.tableView.rowHeight = 22.0

对于不同高度的单元格,您必须实现UITableViewDelegate方法- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath

在此方法中,您将确定在给定indexPath的情况下需要显示多少文本,并计算并返回该行的高度值。

尽管如此,Apple的人机界面指南建议UITableViewCell高度至少应为44点,考虑到人的手指厚度。

答案 1 :(得分:2)

根据您正在使用的UITableViewCellStyle,您可以使用textLabel和detailTextLabel元素,并且可以在它们上设置字体/大小/颜色。

cell.detailTextLabel.font = [UIFont boldSystemFontOfSize:18];举个例子。

我听说将这些修改放在

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath

是正确的做法。

答案 2 :(得分:1)

以下是设置行高的方法。由于开销

,显然这样做比在willDisplayCell方法中设置它更好
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    CGFloat result;
    result = 20;
    return result;
}