Đây là cách nó được thực hiện tôi tin rằng cách chính xác. Nó hoạt động trên Ipad và Iphone như tôi đã thử nghiệm. Chúng ta phải tạo các CustomCells của riêng mình bằng cách phân loại một uitableviewcell:
bắt đầu trong interfaceBuilder ... tạo một UIViewcontroll mới gọi nó là customCell (tình nguyện cho một xib khi bạn ở đó) Hãy chắc chắn customCell là một lớp con của uitableviewcell
xóa tất cả các khung nhìn ngay bây giờ và tạo một khung nhìn làm cho nó có kích thước của một ô riêng lẻ. làm cho khung nhìn lớp con customcell. bây giờ tạo hai khung nhìn khác (nhân đôi cái nhìn đầu tiên).
Chuyển đến trình kiểm tra kết nối của bạn và tìm 2 IBOutlets bạn có thể kết nối với các chế độ xem này ngay bây giờ.
-backgroundView -SelectedBackground
kết nối những cái này với hai cái nhìn cuối cùng mà bạn vừa nhân đôi và đừng lo lắng về chúng. chế độ xem đầu tiên mở rộng customCell, đặt nhãn của bạn và uitextfield bên trong nó. đã vào customCell.h và kết nối nhãn và trường văn bản của bạn. Đặt chiều cao của chế độ xem này thành 75 (chiều cao của mỗi ô) được thực hiện.
Trong tệp customCell.m của bạn, đảm bảo hàm tạo giống như thế này:
- (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;
}
Bây giờ hãy tạo một UITableViewcontroll và trong phương thức này sử dụng lớp customCell như thế này:
- (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;
}