4

UITableView私が使用している にはカスタムがありますUItableViewCell。このカスタム セルにはサブビュー (UIView サブクラス) があります。drawRectカスタム UIView サブクラスのを使用して、セルによって表示されるすべてのテキストを配置します。

そして、drawRectUIViewサブクラスの)私は次のことを行います

/*
// This piece of code is called when setNeedsDisplay is called
*/
- (void)drawRect:(CGRect)rect
{

    self.layer.cornerRadius = 10.0f;
    self.layer.backgroundColor = [[UIColor orangeColor] CGColor];
    self.layer.borderColor = [[UIColor lightGrayColor] CGColor];
    self.layer.borderWidth = 3.0f;
}

しかし、私のカスタムセルはこのような黒い四角です

ここに画像の説明を入力

ただし、行を選択すると、意図した動作が表示されます。以下のように

ここに画像の説明を入力

どうしたの ?

4

4 に答える 4

3

あなたのdrawRect:メソッドは何も描画しません。そこに配置したコードは、initWithFrame:実装に属します。

イニシャライザでレイヤー構成を操作する必要があります。あなたの中であなたはビューの状態に基づいてdrawRect:あなたの関数を呼び出すべきです。CGContextRefたとえば、使用するテキストを描画したりCGContextShowTextAtPoint、使用する線を描画しCGContextAddLineToPointたりします。

との関係については、この質問を参照してください。drawRect:CALayerUIView

于 2012-09-18T16:52:34.027 に答える
0

を使用して、セルの選択ハイライトを無効にしてみてください

[cell setSelectionStyle:UITableViewCellSelectionStyleNone];
于 2012-09-18T16:24:37.047 に答える
0

self.layer.masksToBounds = YESand (おそらく)の (オーバーライドされているもの) の初期化self.opaque = NO中に設定してみてください。(この質問を参照してください)UIViewdrawRect

于 2012-09-18T16:40:31.960 に答える