2015-09-22 72 views
0

我在.xib中創建了一個簡單的表格視圖。我想擴大所有屏幕尺寸表視圖細胞(即iPhone 6,6加和iPad)。目前我已經硬編碼在不同分辨率下的不同高度是這樣的:使用自動佈局按比例縮放表格查看單元格高度

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:  (NSIndexPath *)indexPath{ 

    CGFloat cellHeight = 0; 

    if (IS_IPHONE_6P) { 

    // iphone 6P 
    // cellHeight = 133; 
    cellHeight = 175; 


    } 
    else if (IS_IPHONE_6){ 
    // on iphone 6 
    // cellHeight = 120; 
    cellHeight = 160; 

    } 

    else if (IS_IPHONE_5){ 
    //On iphone 5 
    // cellHeight = 105; 
    cellHeight = 145; 

    } 

    else if (IS_IPHONE_4_OR_LESS){ 
    // on iphone 4 
    // cellHeight = 50; 
    cellHeight = 130; 

    } 
    else { 
    //on ipad 
    // cellHeight = 200; 
    cellHeight = 280; 

    } 


    // cellHeight = cellHeight *2; 

    return cellHeight; 

    } 

我有沒有更好的辦法處理這一?

+2

CGRectGetHeight([UIScreen mainScreen] .bounds)*比例 –

回答

1

一種方法是獲得您的UITableView的高度,並將其與您正在查找的比例相除。

你可以得到UITableView高度在viewDidLoad或在您的viewDidAppear

+1

這兩種方法都太早,你會得到高度是連環畫的高度,而不是設備上的最終高度。嘗試使用viewDidLayoutSubviews來獲取表視圖的實際高度。 – RowanPD

1

一個可能的解決方案是讓屏幕的高度和你比係數相乘。

return CGRectGetHeight([UIScreen mainScreen].bounds) * ratio; 
+0

所以我需要在heightForRowAtIndexPath方法中執行此操作 –

+0

在這種情況下,「ratio」是什麼? –

+0

Tash,屏幕的百分比。如果您比例= 1,您的單元格將與屏幕高度相同,比例= 0.5 - 單元格高度爲屏幕的一半 –

相關問題