2011-03-08 42 views
4

我有一個通過代碼(而不是Interface Builder)創建的自定義UITableViewCell。我有依賴於單元格寬度的子視圖:有一個標籤總是需要在單元格的右邊緣內。單元格顯示在分組表格視圖中。確定分組自定義單元格的UITableViewCell寬度的正確方法?

我本來硬編碼的值與iPhone一起工作,但現在我將應用程序轉換爲通用二進制文件,並且硬編碼數字用於iPad上的分組表格視圖。

有沒有合適的方法來獲取單元格的寬度?該框架返回全屏幕寬度,這是我的標籤不合適的位置。或者我應該硬編碼兩組值,一個用於iPhone,一個用於iPad?

任何建議將不勝感激。

回答

9

您應該能夠從單元的contentView子視圖中獲得適當的尺寸。但是,通常應該在子視圖上設置大小和自動識別遮罩,以便不管特定寬度的最終結果如何,單元格都能正確顯示。

+1

謝謝,那是我的問題。我爲我的計算使用了cell.frame而不是cell.contentView.frame。 – SeanR 2011-03-08 12:08:02

0

這一切似乎都不適合我;我在xib中定義了一個自定義單元格,左側邊緣有一個圖形(在iPhone上爲20px),在iPhone上看起來很好。但在iPad上,圖形與左側分組的區域邊界重疊!要解決它,我設定的水平空間約束(領導)到圖像的輸出,那麼扭捏,在對的UITableViewCell子類代碼:

- (void)setFrame:(CGRect)frame { 
    if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) { 
     self.leadingSpaceConstraint.constant = 40; 
    } 
    [super setFrame:frame]; 
} 

撥弄數,直到差距是恰到好處。 :)

我意識到setFrame:可能不是這個代碼的理想位置,但它工作 - 所以它保持。

相關問題