Tôi đang chuyển đổi sang iOS 5 và bảng phân cảnh. Khi tôi có chế độ xem bảng với kiểu ô mặc định, mọi thứ đều hoạt động tốt.Cách khởi tạo ô bảng kiểu mẫu tùy chỉnh trong bảng phân cảnh iOS 5?
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"MyIdentifierFromStoryboard"];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"MyIdentifierFromStoryboard"];
}
return cell;
}
Tôi đã xem các ví dụ trong đó khối "if (cell == nil)" bị xóa. Tuy nhiên nếu tôi lấy nó ra, ứng dụng của tôi treo với thông báo: "UITableView dataSource phải trả về một ô từ tableView: cellForRowAtIndexPath:". Đây không phải là một vấn đề bởi vì nó hoạt động như được hiển thị ở trên.
Vấn đề của tôi là tôi muốn sử dụng kiểu tùy chỉnh cho ô và do đó không thể sử dụng initWithStyle. Làm thế nào để khởi tạo một ô tùy chỉnh mà tôi đã thiết kế trên bảng phân cảnh?
Ứng dụng cũ trước 5 có một ngòi và lớp đã sử dụng một cái gì đó như thế này, nhưng bây giờ tôi đang sử dụng bảng phân cảnh.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
MyCustomTableCell *cell = (MyCustomTableCell *) [tableView dequeueReusableCellWithIdentifier:@"MyCustomIdentifier"];
if (cell == nil) {
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"MyCustomTableCell" owner:self options:nil];
cell = (MyCustomTableCell *) [nib objectAtIndex:0];
}
return cell;
}
nếu bạn vẫn cố gắng sử dụng Nib này làm TableViewCell tùy chỉnh thì sao? – onmyway133