Begini caranya, saya percaya cara yang benar. Ini berfungsi pada Ipad dan Iphone saat saya mengujinya. Kita harus membuat customCell kita sendiri dengan mengklasifikasikan uitableviewcell:
mulai di interfaceBuilder ... buat UIViewcontroller baru, sebut saja customCell (sukarelawan untuk xib saat Anda di sana) Pastikan customCell adalah subkelas uitableviewcell
hapus semua tampilan sekarang dan buat satu tampilan membuatnya seukuran sel individual. buat tampilan kustom subclass itu. sekarang buat dua tampilan lain (duplikat yang pertama).
Pergi ke inspektur koneksi Anda dan temukan 2 IBOutlet yang dapat Anda sambungkan ke tampilan ini sekarang.
-backgroundView -SelectedBackground
hubungkan ini ke dua tampilan terakhir yang baru saja Anda tiru dan jangan khawatir tentang mereka. tampilan pertama yang meluas customCell, letakkan label dan uitextfield di dalamnya. masuk ke customCell.h dan hubungkan label dan bidang teks Anda. Atur ketinggian tampilan ini untuk mengatakan 75 (tinggi setiap sel) semua selesai.
Di file customCell.m Anda, pastikan konstruktornya terlihat seperti ini:
- (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;
}
Sekarang buat UITableViewcontroller dan dalam metode ini gunakan kelas customCell seperti ini:
- (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;
}