2011-02-28 34 views
0

我想開發一個非常緊湊的字體大小和行高的視圖。可以將UITableViewController自定義爲非常緊湊/小型的字體嗎?

是否可以自定義UITableViewController,以便您使用的字體大小/行高是什麼?實際上,更一般的問題是UITableViewController容易定製,您可以將其中所需的任何內容放入其中,並將其用於顯示自定義單元格的框架?

有興趣知道這裏是否有任何gottcha,如果有一些什麼是下一個選項?是否會直接使用繪圖類型命令「繪製」自己的界面?

(試圖確定在哪裏挖,在條款讀了)

感謝

+0

您可以自定義單元格內容,無論您想要什麼。 cell.textLabel.font – Splendid 2011-02-28 09:28:51

回答

3

如果所有的細胞是同質的,可以調整的UITableViewUITableViewController的實例的rowHeight財產。

self.tableView.rowHeight = 22.0

不同高度的細胞,你將不得不實施的UITableViewDelegate方法,- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath

在此方法中,您將確定在給定indexPath的情況下需要顯示多少文本,並計算並返回該行的高度值。

說了這麼多,考慮到人類手指的厚度,Apple的人機界面指南建議UITableViewCell高度至少應爲44點。

+0

如何改變你在那裏顯示的文本的字體?我猜想有較小字體的概念,然後自動調整行高到這個想法 - 這將是查看沒有點擊可能 – Greg 2011-02-28 07:13:37

+0

將標記爲答案,因爲馬克得到了問題的第一部分的答案(我已經回答了這個問題自己就第二部分) – Greg 2011-02-28 11:19:00

2

取決於你與你工作UITableViewCellStyle有一個爲textLabel和detailTextLabel元素一起工作,你可以對它們設置字體/大小/顏色。

cell.detailTextLabel.font = [UIFont boldSystemFontOfSize:18];舉一個例子。

聽說把這些修改在

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

是做正確的事。

+0

感謝傑森 - 看到我在您的線索 – Greg 2011-02-28 11:18:23

+0

跟進後公佈答案我同意heigthforRowAtIndexPath是細胞高度適當的位置。我認爲這個問題也是針對字體大小。 – 2011-03-01 07:43:14

1

以下是設置行高的方法。顯然這樣做比將其設置在willDisplayCell方法中的開銷要好

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    CGFloat result; 
    result = 20; 
    return result; 
}