UITableViewAccessoryType随机不显示

时间:2013-01-03 18:53:39

标签: objective-c ios xcode uitableview

对于TableView中的每个单元格,我基本上都有一个布尔变量,用于存储是否为该单元格加载数据。因此,点击单元格将导致附件类型更改为UIActivityIndi​​cator。 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

的else语句

谢谢!

1 个答案:

答案 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];
}

根据documentation

  

<强> accessoryView的
  如果此属性的值不是nil,则为UITableViewCell类   在表视图的法线中使用给定视图作为附件视图   (默认)状态;它忽略了accessoryType属性的值。   提供的附件视图可以是框架提供的控件或   标签或自定义视图。附件视图显示在右侧   细胞。

所以你需要将accessoryView设置为nil显示accessoryType,否则它会忽略它。