您好我是iOS和SO的新手。我在我的应用程序中遇到一个问题,即在一个tableview中显示两个自定义单元格并选择分段控件。当用户单击segmented = 0时,它会显示一个自定义单元格,segmented = 1显示第二个自定义单元格。 这是我现在尝试的代码,
-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return 1;
}
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return array.count;
}
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
if (value1 == 0)
{
static NSString *cellId = @"Cell";
Cell1 * cell = (Cell1 *)[myTableView dequeueReusableCellWithIdentifier:cellId];
if (cell == nil)
{
NSArray *myNib;
myNib = [[NSBundle mainBundle]loadNibNamed:@"Cell1" owner:self options:nil];
cell = [myNib lastObject];
}
cell.examLbl.text = [[array objectAtIndex:indexPath.row]objectForKey:@"examtitle"];
myTableView.dataSource = self;
myTableView.delegate = self;
[myTableView reloadData];
return cell;
}
else
{
if (value1 == 1)
{
static NSString * cellIdentifier = @"Cell2";
Cell2 *cell = (ContestRewardCell *)[myTableView dequeueReusableCellWithIdentifier:cellIdentifier];
if (cell == nil)
{
NSArray *myNib;
myNib = [[NSBundle mainBundle]loadNibNamed:@"cell2" owner:self options:nil];
cell =[myNib objectAtIndex:0];
}
cell.titleLbl.text = [[array objectAtIndex:indexPath.row]objectForKey:@"title"];
myTableView.dataSource = self;
myTableView.delegate = self;
[myTableView reloadData];
return cell;
}
}
return nil;
}
这是我的tableview委托方法
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
if (value1 == 0)
{
return 102;
}
else if(value1 == 1)
{
return 193;
}
return 0;
}
在这段代码中没有错误,我检查调试模式数据将来到" cell.examLbl.text"但是没有在tableview中显示自定义单元格。我在这段代码中做错了帮助我任何人。 提前谢谢。
这是我的问题的答案,我没有实现这个
split(',')
答案 0 :(得分:0)
您需要先在viewDid load
中注册单元格nib [YourTableView registerNib:[UINib nibWithNibName:@“YourCellNibName” bundle:nil] forCellReuseIdentifier:@“Identifier”];
然后使用cellForRowAtIndexPath中的单元格
示例:
-(void)viewDidLoad
{
[super viewDidLoad];
[TableView registerNib:[UINib nibWithNibName:@“MyTableViewCell” bundle:nil]forCellReuseIdentifier:@"cell"];
}
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
MyTableViewCell *cell = (MyTableViewCell *)[myTableView dequeueReusableCellWithIdentifier:@"cell”];
cell.labelTitle=@"cell”;
return cell;
}