对于TableView中的每个单元格,我基本上都有一个布尔变量,用于存储是否为该单元格加载数据。因此,点击单元格将导致附件类型更改为UIActivityIndicator。 TableView加载很好,但当我弹回TableView时,一个或两个单元格随机没有默认的DisclosureIndicator ......它什么都没有
我使用的代码位于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的代码...我不确定发生了什么,因为缺少指示的单元格正在触发导致setAccessoryType
谢谢!
答案 0 :(得分:1)
试试这个,
if ([entry isLoading]) {
UIActivityIndicatorView *activityView =
[[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
[activityView startAnimating];
[cell setAccessoryView:activityView];
[cell setAccessoryType:UITableViewCellAccessoryNone];
}
else{
[cell setAccessoryView:nil];
[cell setAccessoryType:UITableViewCellAccessoryDisclosureIndicator];
}
<强> accessoryView的强>
如果此属性的值不是nil,则为UITableViewCell类 在表视图的法线中使用给定视图作为附件视图 (默认)状态;它忽略了accessoryType属性的值。 提供的附件视图可以是框架提供的控件或 标签或自定义视图。附件视图显示在右侧 细胞。
所以你需要将accessoryView
设置为nil显示accessoryType
,否则它会忽略它。