我有一个普通的桌面视图与自定义单元格,在iOS 6.0完美工作,但升级到iOS 10后,分散的问题出现。cellForRowAtIndexPath:被调用,但没有显示在tableview
注意:该应用程序可以在iPhone 5上正常工作,无论是在模拟器上还是在真实设备上。所有设备都运行iOS 10.2,但iPhone 6及以上版本具有下述问题。
一些tableviews像以前一样工作正常,而其中一个tableView总是显示1个单元格(即使艰难的cellForRowAtIndexPath被称为7次),另一个表格尽管cellForRowAtIndexPath
被调用了两次,但根本不显示任何单元格。
我想知道为什么如果tableview不关心显示结果调用该方法?
我完全丧失了正在发生的事情以及如何解决这个问题。一直没有进展的一天。我已经尝试清理并运行不同的构建,无法让受影响的表访问行为正确。我不知道接下来要尝试什么?任何帮助表示赞赏,谢谢!
好,因为你需要一些代码,这是它的一部分,不是那么敏感。数据源:
- (void)viewDidLoad
{
[super viewDidLoad];
NOSUserInfo2 *userInfo = [S24SharedUserHandler currentUser];
dataSource = [NSMutableArray arrayWithArray:[userInfo children]];
if([userInfo student] || [userInfo teacher])
{
[dataSource insertObject:userInfo atIndex:0];
}
self.contentSizeForViewInPopover = CGSizeMake(250, 45*dataSource.count-1);
self.tableView.backgroundColor=[UIColor colorWithWhite:0.95f alpha:1];
self.tableView.scrollEnabled=NO;
[self.tableView registerNib:[UINib nibWithNibName:@"NOSPersonSelectorCell" bundle:nil] forCellReuseIdentifier:@"PersonPopoverCell"];
}
调用此2次:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"PersonPopoverCell";
NOSPersonSelectorCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
cell.selectionStyle=UITableViewCellSelectionStyleNone;
cell.textLabel.font = [UIFont fontWithName:@"HelveticaNeue-Medium" size:15];
cell.textLabel.backgroundColor=[UIColor clearColor];
NSObject *dataObject = [dataSource objectAtIndex:[indexPath row]];
if ([dataObject isKindOfClass:[NOSUserInfo2 class]]) {
cell.textLabel.text = [(NOSUserInfo2 *)dataObject name];
cell.pk = [(NOSUserInfo2 *)dataObject personPK];
}
else {
cell.textLabel.text = [(NOSChild2 *)dataObject childName];
cell.pk = [(NOSChild2 *)dataObject childPK];
}
cell.textLabel.textColor = [UIColor colorWithWhite:0.18f alpha:1];
//NSLog(@"%d", [S24SharedUserHandler selectedPk]);
cell.checkmark.hidden=cell.pk!=[S24SharedUserHandler selectedPk];
return cell;
}
而且结果是的tableview是空的。
新信息2017年1月11日 该应用程序在手机上测试,但不在模拟器上。我仍然不知道什么是错误的,我真的对于我提出这个问题的积极态度感到失望。如果有人能解释他们为什么认为这是一个糟糕的问题,我将不胜感激。
显然,一切工作在iPhone 5上。它不适用于iPhone 6或更高版本。请注意,iOS仍然是10.2,因为iPhone 5和iPhone 6和7都具有iOS 10.2
由于工作与不工作之间的唯一区别是设备,而不是ios版本,我现在倾向于它是仅在特定大小时才会出现的UI错误。
一说出现另一个问题是,我也gesturerecognizer只适用于iPhone5的,而不是6+
新的信息!
我可以通过评论heightForRowAtIndexPath
代码来解决问题。这现在意味着我需要其他方式来调整某些单元的高度,这是当前的问题。我仍然不知道为什么uitableview这样表现。
您需要解释您的数据模型并发布所有表视图数据源方法。 –
你需要什么代码?我没有什么特别的事情发生,正如我所说的,相同的代码在另一个平台上工作。我刚刚没有发现有人说过cellForRow已被调用,但没有显示任何东西 – Ostmeistro
@Ostmeistro以及您的cellForRow代码将是一个好的开始。另外,可能是对数据模型的解释。或者,也许你如何创建tableview,它的委托/ datasoruce – Fogmeister