2012-12-25 54 views
1

我已經實現了一個tableView與我需要的內容。只有5個單元要顯示。我現在不能實現的是:TableViewCell高度自動調整爲屏幕尺寸

我想要五個單元格均勻分佈在tableview的高度,依賴於所使用的iphone。因此,邏輯上,iPhone 5的高度應該比iPhone 4高。同樣,如果有視網膜或沒有視網膜,則應該有正確的細胞分佈。

我必須爲此提供不同的背景圖片嗎? 和這將是對,最好的辦法:

所述的tableview看起來像這樣:

[HEADER] [A - TEXT 1] [B - TEXT 2] [C - TEXT 3] [D - TEXT 4] [E - TEXT 5]

在一天結束時不應該滾動。只需自動均勻分配細胞。

我很高興的對幫助...

謝謝

回答

5

首先,如果你能使用的UITableViewDelegate方法tableView:heightForRowAtIndexPath:簡單的迴歸表高度除以5,這將使每個單元格的表格高度的五分之一:

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    return [tableView bounds].size.height/(CGFloat)[myDataSourceArray count]; 
} 

這將適用於iPhone 5和iPhone 4,前提是您已將表格配置爲屏幕大小。此外,沒有必要做任何事情來爲視網膜/非視網膜設置單元格,因爲在爲iOS編程時,您可以指定不是像素的屏幕尺寸,而是允許iOS自動處理縮放。

然後關於背景圖片,有幾種不同的方法可以實現這一點,具體取決於您想要的最終結果。例如,如果您只想使用圖案圖像填充單元格,並讓默認表格視圖分隔符將它們分開,則可以使圖像具有實現該圖案所需的最小尺寸。 (可能是2x2px和4x4 @ 2個)然後,只需使用:

[[cell contentView] setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"myPatternImage"]]]; 

或者,如果你有某種邊界的,你要顯示的細胞周圍的圖像,你可以使用一個可調整大小的圖像與cap insets畫周圍的邊框上,然後用圖案填充在細胞內,這裏有一個截圖,以幫助解釋它是如何工作的:

enter image description here

然後,當然,你可以只添加一個UIImageView作爲細胞的一個子視圖並添加完整的圖像,它不完全是錯誤,但我不會推薦它,因爲我建議的其他兩種方法更有效。希望這可以幫助!

+0

絕對夢幻般的答案..非常感謝你.....! – konturgestaltung

+0

@konturgestaltung很高興幫助! :) –