我已经开始学习xcode和Iphone SDK,我为一个tableview创建了一个自定义的UITableviewCell,它只通过一个xib(nib)文件为不同的值加载NSArrays。
我想知道的是如何让这些单元格打开不同的xib(nib)文件。
这是我的档案。
#import "SimpleTableViewController.h"
#import "NextViewController.h"
#import "TableCellView.h"
@implementation SimpleTableViewController
// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad {
titleList = [[NSArray alloc] initWithObjects:
@"Title 1", @"Title 2", @"Title 3", @"Title 4" , nil];
imagesList = [[NSArray alloc] initWithObjects:
@"Image 1", @"Image 2", @"Image 3",
@"Image 4", nil];
imagesHeader = [[NSArray alloc] initWithObjects:
@"ImagePro 1", @"ImagePro 2",
@"ImagePro 3", @"ImagePro 4", nil];
descpList = [[NSArray alloc] initWithObjects: @"Description 1",
@"Description 2", @"Description 3",
@"Description 4", nil];
self.title = @"Text";
[super viewDidLoad];
}
#pragma mark Table view methods
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 1;
}
// Customize the number of rows in the table view.
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return [titleList count];
}
// Customize the appearance of table view cells.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *MyIdentifier = @"MyIdentifier";
MyIdentifier = @"tblCellView";
TableCellView *cell = (TableCellView *)[tableView dequeueReusableCellWithIdentifier:MyIdentifier];
if(cell == nil) {
[[NSBundle mainBundle] loadNibNamed:@"TableCellView" owner:self options:nil];
cell = tblCell;
}
[cell setLabelText:[titleList objectAtIndex:indexPath.row]];
[cell setProductImage:[imagesList objectAtIndex:indexPath.row]];
[cell setDescpText:[descpList objectAtIndex:indexPath.row]];
return cell;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
NextViewController *nextController = [[NextViewController alloc] initWithNibName:@"NextView" bundle:nil];
[self.navigationController pushViewController:nextController animated:YES];
[nextController changeProductText:[titleList objectAtIndex:indexPath.row]];
[nextController changeProductContent:[descpList objectAtIndex:indexPath.row]];
[nextController changeHeaderContent:[imagesHeader objectAtIndex:indexPath.row]];
}
@end
答案 0 :(得分:1)
创建XIB文件。 (CustomCellOne,CustomCellTwo)
以下是如何交替细胞的示例:
更改这些行:
MyIdentifier = @"tblCellView";
[[NSBundle mainBundle] loadNibNamed:@"TableCellView" owner:self options:nil];
到这些方面:
MyIdentifier = indexPath.row % 2 == 0 ? @"CustomCellOne" : @"CustomCellTwo";
[[NSBundle mainBundle] loadNibNamed:indexPath.row % 2 == 0 ? @"CustomCellOne" : @"CustomCellTwo" owner:self options:nil];