我想将UItextField放在UITableViewCell中,但我有问题。文本字段不会出现。这是我的代码:
-(id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self) {
self.textField = [[UITextField alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 120.0f, 45.0f)];
self.textField.textColor = [UIColor blackColor];
[self.contentView addSubview:self.textField];
}
return self;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
TextFieldCell *cell = (TextFieldCell*)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[TextFieldCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
switch (indexPath.row) {
case 1:
cell.textField.placeholder = @"Username";
break;
case 2:
cell.textField.placeholder = @"Password";
break;
case 3:
cell.textField.placeholder = @"Server Address";
break;
case 4:
cell.textField.placeholder = @"Description";
break;
default:
break;
}
return cell;
}
我测试并调用了initWithStyle方法。有人可以帮帮我吗?
答案 0 :(得分:2)
如果 TextFieldCell 有 .xib 文件,则拖放textview并将所有属性设置为“界面”构建器其他 您只能通过 *
创建* .XIB 以用作TableViewCell在.h文件中
IBOutlet UITableViewCell * CUSTOM_CELL_XIB;
在cellForRowAtIndexPath方法的.m文件中
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = (UITableViewCell*)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil)
{
[[NSBundle mainBundle] loadNibNamed:@"CUSTOM_CELL_XIB" owner:self options:nil];
cell = CUSTOM_CELL_XIB;
}
直接拖放textField或任何你想要的UI,我认为这是自定义单元格创建的有效方法。
这将完美地运作