2014-10-06 48 views
0

現在我正在嘗試適應兩個新的iPhone 6/Plus。我正在使用UITableViewController來實現我的表。如何返回正確的高度ForRowAtIndexPath

我的單元格內有一個320x189的UImageView,使用幾乎整個單元格,並充當每個單元格的背景。

我得到它的動態和大小的圖像會有所不同,所以我無法控制圖像的大小。通過使用約束條件,我可以將圖像調整到整個單元格。但我覺得在iPhone 6 Plus中,電池的高度至少要高出20px。

有沒有什麼辦法可以檢測到它的iPhone 6 Plus/6,並在heightForRowAtIndexPath方法覆蓋返回的高度? O也許應該爲iPhone 6/Plus使用不同的StoryBoard?

請指教。

謝謝

回答

1

你可以根據屏幕高度檢測它是什麼手機。這些是iPhone 4和iPhone 5的屏幕尺寸:http://www.idev101.com/code/User_Interface/sizes.html,這些是iPhone 6/6 +的變暗:http://www.paintcodeapp.com/news/iphone-6-screens-demystified

iPhone 4的高度爲480點,iPhone 5的高度爲568點,iPhone 6的高度爲667點,6點的高度爲736點。

您可以通過[UIScreen mainScreen].bounds.size.height獲得設備屏幕的高度。

所以,你可以告訴你用什麼樣的手機:

CGFloat h = [UIScreen mainScreen].bounds.size.height; 
if (h > 700){ 
    NSLog(@"iPhone 6+"); 
} 
else if (h > 600){ 
    NSLog(@"iPhone 6"); 
} 
else if (h > 500){ 
    NSLog(@"iPhone 5"); 
} 
else{ 
    NSLog(@"iPhone 4"); 
} 

爲表單元格的高度,您可以編程設置高度,無論圖像的大小在heightForRowAtIndexPath方法中。如果你的圖像是某種陣列,你可以這樣做:

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{ 
    return images[indexPath.row].size.height; 
} 

應該調整每個單元的高度以適合其對應的圖像。

希望這會有所幫助!

+0

第一個選項就像一個魅力! 謝謝 – outime 2014-10-07 01:14:45