1つのラベルと1つのテキストフィールドを持つカスタムUITableViewCellを(プログラムで、サブクラス化して)作成しています。
このコード
#import "TextCell.h"
@implementation TextCell
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self) {
UITextField *subjectField = [[UITextField alloc] initWithFrame:CGRectMake(59, 11, 399, 21)];
subjectField.font = [UIFont systemFontOfSize:17];
subjectField.placeholder = @"(placeholder)";
[self.contentView addSubview:subjectField];
self.textField = subjectField;
}
return self;
}
結果として非表示のテキストフィールドになります:
ただし、このセルを選択すると、テキストフィールドが表示されます。
実装すれば
- (void)layoutSubviews
{
self.textField.frame = CGRectMake(59, 11, 399, 21);
/* thus text field init method becomes initWithFrame:CGRectZero;
}
テキストフィールドは表示されますが、ラベルが消え、セルの幅が突然大きくなります。
正しい方向に向けてください。