2011-12-18 9 views
1

backgroundViewパラメータは、UITableViewCellのbackgroundViewパラメータを設定しようとしていますが、backgroundViewはセルの境界をオーバーラップしています。私はmasksToBoundsをYESに設定しようとしましたが、それは違いはありません。私が間違っているところを教えてください。ここでUITableViewCellのbackgroundViewオーバーラップcontentView

は私の問題を示す画像である。ここでは

enter image description here

は私のコードです:なぜあなただ​​けいない場合

UIImageView *iv = [[[UIImageView alloc] initWithFrame:cell.frame] autorelease]; 
[iv setImage:[UIImage imageNamed:@"paper"]]; 
[iv.layer setMasksToBounds:YES]; 
[cell.layer setMasksToBounds:YES]; 
[cell.contentView.layer setMasksToBounds:YES]; 
[cell setBackgroundView:iv]; 

答えて

1

masksToBoundsを使用すると、セルの境界が矩形であるために機能しません。

セルの角が丸められていても、それらはセルの一部です(ただし、透明ピクセルが含まれています)。セルがグループ化されたテーブルビューで表示されるとき、そのセルの背景ビュー(およびその選択された背景ビュー)は、そのセクション内の位置(中央、上、下、単一)に関して描画されます。

ですから、カスタム背景ビューを提供する場合、あなたはそのセクション内のセルの位置を計算し、十分な背景を提供する必要があります。

  • いずれかの4枚の異なる画像
  • を使用しますか、背景画像のレイヤーのmaskプロパティーを使用するか、またはUIViewをサブクラス化してdrawRectを実装して、画像が描画される前にグラフィックコンテキストがクリップされます。
0

あなたは、すべてのセルの背景ビューを設定していますテーブルビューの背景に設定します。

関連する問題