İşte nasıl yapılır doğru yolu inanıyorum. Test ettiğim gibi Ipad ve Iphone'da çalışıyor. Bir uitableviewcell sınıflayarak kendi customCells oluşturmak gerekir:
interfaceBuilder'da başlayın ... yeni bir UIViewcontroller oluşturun customCell deyin (oradayken bir xib için gönüllü olun) customCell'in uitableviewcell'in bir alt sınıfı olduğundan emin olun
şimdi tüm görünümleri silmek ve tek bir hücre boyutu yapmak bir görünüm oluşturmak. o görünümü alt sınıf customcell yapın. şimdi iki görünüm daha oluşturun (ilkini çoğaltın).
Bağlantı denetçinize gidin ve şimdi bu görünümlere bağlayabileceğiniz 2 IBOutlet bulun.
-backgroundView -SelectedBackground
bunları kopyaladığınız son iki görünüme bağlayın ve onlar hakkında endişelenmeyin. customCell'i genişleten ilk görünüm, etiketinizi ve uitextfield'ı içine yerleştirin. customCell.h girdim ve etiketinizi ve metin alanınızı bağlayın. Bu görünümün yüksekliğini, tamamlandı 75 (her hücrenin yüksekliği) olarak ayarlayın.
CustomCell.m dosyanızda, yapıcı şunun gibi göründüğünden emin olun:
- (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;
}
Şimdi bir UITableViewcontroller oluşturun ve bu yöntemde customCell sınıfını şu şekilde kullanın:
- (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;
}