答えは最初にあなたのUITableViewCell
サブクラスのlayoutSubviews
メソッド内[super layoutSubviews]
を呼び出すような単純なものでした:ここ
は、タイトルと値を持っている例ですか?
ここに私のコードです。私はUITextField
を作成し、initWithStyle:
方法でcontentView
に追加
まず:そのコードで
-(void)layoutSubviews
{
inputField.frame = CGRectMake(5, 5, 100, 20);
}
、テキスト:
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self) {
inputField = [[UITextField alloc] initWithFrame:CGRectZero];
[self.contentView addSubview:inputField];
inputField.borderStyle = UITextBorderStyleLine;
[inputField release];
}
return self;
}
次にlayoutSubviewsに、私はこれを持っていますフィールドは画面の左から5pxです(グループモードのときはテーブルセルの左に5pxです)。つまり、テーブルビューセルのOUTSIDEです。いいえ。
使用私はそれになりたいようにこのコードとinputField
は、セルの右に5pxのが置かれます
-(void)layoutSubviews
{
[super layoutSubviews]; // the magic line
inputField.frame = CGRectMake(5, 5, 100, 20);
}
私は完全にかかわらず、あなたが持った問題を誤解している可能性が!
エリック
問題は、(背景を明らかにする側面、それはまた、セクションの上部と下部のセルの角を丸め)細胞の一部を遮断するグループ化されたモードでのUITableViewあります。 – jbrennan
うん、それは問題だ。 –
さらにいくつかのテストを行った後、テーブルビューのセルがdrawRectの正しいサイズで渡されないことは間違いありません。代わりの方法として、標準のUITableViewCellのカスタムbackgroundViewを設定し、そこにすべての図面を作成する方法があります。あなたはセルを正しい幅にしますが、丸い上端と下端を正確にあなた自身で描画しなければなりません。 –