UITableViewAccessoryType随机不显示

问题描述:

对于TableView中的每个单元格,我基本上都有一个布尔变量,用于存储数据是否为该单元格加载。所以点击单元格会导致附件类型更改为UIActivityIndi​​cator。该TableView中加载罚款,但是当我突然回的TableView一个或两个细胞的随机不具备默认DisclosureIndicator ......它没有任何UITableViewAccessoryType随机不显示

我使用的代码里面cellForRowAtIndexPath

NSLog([entry isLoading] ? @"Yes" : @"No"); 
if ([entry isLoading]) { 
    UIActivityIndicatorView *activityView = 
    [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray]; 
    [activityView startAnimating]; 
    [cell setAccessoryView:activityView]; 
} 
else{ 
    [cell setAccessoryType:UITableViewCellAccessoryDisclosureIndicator]; 
} 

我已经通过了代码,没有显示DisclosureIndicator的单元格仍在运行将其设置为AccessoryDisclosureIndicator的代码...我不确定发生了什么,因为缺少指示符的单元格正在触发else语句导致setAccessoryType

谢谢!

试试这个,

if ([entry isLoading]) { 
    UIActivityIndicatorView *activityView = 
    [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray]; 
    [activityView startAnimating]; 
    [cell setAccessoryView:activityView]; 
    [cell setAccessoryType:UITableViewCellAccessoryNone]; 
} 
else{ 
    [cell setAccessoryView:nil]; 
    [cell setAccessoryType:UITableViewCellAccessoryDisclosureIndicator]; 
} 

documentation

accessoryView的
如果此属性的值不为零,则UITableViewCell类, 使用给定观点的附件查看表格视图的正常 (默认)状态;它会忽略accessoryType属性的值。 提供的附件视图可以是框架提供的控件或标签或自定义视图。附件视图出现在单元格的右侧 中。

所以你需要设置accessoryView为零显示accessoryType否则就会忽略它。

+1

你摇滚!这工作。哈哈非常感谢ACB! – Alan