2015-01-16 44 views
0

我試圖在自定義UITableViewCell(或collectionViewCell)中將梯度圖層添加到UILabel。我在界面生成器中爲UILabel設置了一些限制,以便根據內容調整大小。但我不知道如何獲得正確的框架大小的細胞子視圖。如何獲取UITableViewCell或UICollectionViewCell中的子視圖的計算大小

我試過layoutSubviews但它被多次調用,在我的情況下是兩次。因此它增加了兩個漸變圖層,第一個用於不計算幀,一個用於計算幀。

對於UITableViewUICollectionView我都試過cellForItemAtIndexPath。它也不起作用。

如何或何時在UITableViewCellUICollectionView中獲得子視圖的正確幀大小?

回答

0

您可以隨時調整添加的漸變圖層的大小或將其刪除並在layoutSubviews中再次添加。

+0

這是不一致的。有些單元格不使用計算幀,有些單元格使用計算幀。此外,變化是可見的;我看到梯度圖層移動 – osrl

+0

所以在這種情況下,嘗試使用'UIView'只有一個圖層,這是您的漸變圖層類(我猜想是''CAGradientLayer')。用於查看的圖層由'UIView''layerClass'方法返回https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIView_Class/index.html#//apple_ref/occ/clm/UIView/layerClass 。將這個視圖設置爲你的表格單元格的背景視圖https://developer.apple.com/library/ios/documentation/UIKit/Reference/UITableViewCell_Class/index.html#//apple_ref/occ/instp/UITableViewCell/backgroundView和它應該自動調整大小 – MichK

+0

作爲背景視圖添加對我來說不起作用,因爲我不想爲其中一個子視圖添加漸變(UILabel),我不需要「UITableViewCell」的大小,我需要它的子視圖' – osrl

相關問題