这就是它的完成方式,我相信正确的方法。当我测试它时,它适用于 Ipad 和 Iphone。我们必须通过对 uitableviewcell 进行分类来创建自己的 customCells:
从 interfaceBuilder 开始...创建一个新的 UIViewcontroller 将其命名为 customCell (当你在那里时自愿参加 xib)确保 customCell 是 uitableviewcell 的子类
现在擦除所有视图并创建一个视图,使其具有单个单元格的大小。使该视图成为customcell的子类。现在创建另外两个视图(复制第一个)。
转到您的连接检查器并找到 2 个您现在可以连接到这些视图的 IBOutlets。
-backgroundView -SelectedBackground
将这些连接到您刚刚复制的最后两个视图,不要担心它们。扩展 customCell 的第一个视图,将您的标签和 uitextfield 放入其中。进入 customCell.h 并连接您的标签和文本字段。将此视图的高度设置为 75(每个单元格的高度)全部完成。
在您的 customCell.m 文件中,确保构造函数看起来像这样:
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self) {
// Initialization code
NSArray *nibArray = [[NSBundle mainBundle] loadNibNamed:@"CustomCell" owner:self options:nil];
self = [nibArray objectAtIndex:0];
}
return self;
}
现在创建一个 UITableViewcontroller 并在此方法中使用 customCell 类,如下所示:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
// lets use our customCell which has a label and textfield already installed for us
customCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
//cell = [[[customCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
NSArray *topLevelsObjects = [[NSBundle mainBundle] loadNibNamed:@"NewUserCustomCell" owner:nil options:nil];
for (id currentObject in topLevelsObjects){
if ([currentObject isKindOfClass:[UITableViewCell class]]){
cell = (customCell *) currentObject;
break;
}
}
NSUInteger row = [indexPath row];
switch (row) {
case 0:
{
cell.titleLabel.text = @"First Name"; //label we made (uitextfield also available now)
break;
}
}
return cell;
}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
return 75.0;
}