我在一个视图控制器中有两个表视图。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
if (tableView.tag==0) {
TableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell"];
if (!cell) {
cell=[[TableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"cell"];
}
int storyIndex = [indexPath indexAtPosition: [indexPath length] - 1];
cell.title.text=[[stories objectAtIndex: indexPath.row] objectForKey: @"title"];
cell.title.numberOfLines=6;
return cell;}
else
{
static NSString *CellIdentifier2 = @"Cell2";
TableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier2];
if (cell == nil)
{
cell = [[TableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier2] ;
}
int row =indexPath.row;
if (row==0) {
cell.title.text =@"All Songs";
}
else
cell.title.text = [categoryArray objectAtIndex:indexPath.row-1];
return cell;}
}
对于第一个(tableView.tag == 0)表,一切都没问题,但对于第二个:
2015-02-18 11:53:11.733 Karaoke Final Project[2722:808305] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UITableViewCell title]: unrecognized selector sent to instance 0x7fb4d2c48bb0'
对于两个表视图单元格,我设置了相同的类TableViewCell。
如果tableView.tag!= 0我放
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier2];
if (cell == nil)
{
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier2] ;
}
我没有问题。
答案 0 :(得分:0)
所有单元格对象都是UITableViewCell
类型,因为您将它们分配为此类型。据我所知UITableViewCell
没有名为“title”的属性。
TableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell"];
它不会使您的对象TableViewCell
类型。它只是创建这种类型的指针。它有效,因为您从UITableViewCell
中的TableViewCell
继承。
你应该试试这个:
cell = [[TableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier2] ;
而不是:
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier2] ;
两种情况。
答案 1 :(得分:0)
cell=[[TableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"cell"];
单元格类型的返回类型为UITableViewCellStyleSubtitle
,因此此样式没有属性title
。
你必须使用
cell.textLabel.text = @"Title";
或
cell.detailTextLabel.text = @"Details";
答案 2 :(得分:0)
static NSString *CellIdentifier2 = @"Cell2";
TableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier2];
if (cell == nil)
{
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"SimpleTableCell" owner:self options:nil];
cell = [nib objectAtIndex:0];
}
使用上面的代码....有关详细信息,请访问此链接..
http://www.appcoda.com/customize-table-view-cells-for-uitableview/