【问题标题】:Removing an Accessory View from a UITableViewCell When The Cell is Not Selected and maintaining between reloading views当未选择单元格时从 UITableViewCell 中删除附件视图并在重新加载视图之间进行维护
【发布时间】:2014-05-10 20:24:24
【问题描述】:

我有一个我认为很简单的问题,但我找不到解决方案。

我有一个静态 UITableView 和两个静态 cells(浅色和深色)。

当用户选择其中一个单元格时,我将显示一个带有自定义图像的附件视图。当用户选择另一个单元格时,我希望第一个单元格取消选择并删除自定义附件视图,并将其提供给第二个单元格。我希望它根据用户选择的单元格连续执行此操作。

同样重要的是,我需要确保“选定”单元格在重新加载此视图控制器的整个过程中保持附件视图(使用 NSUserDefaults)。

我该怎么做呢?我对iOS开发相当陌生。

这是我的 didSelectRow 中的一些代码:

 BOOL isSelected;

if (cell.isSelected) {
    UIImageView *dot = [[UIImageView alloc]initWithFrame:CGRectMake(165, 10, 14, 15)];
    dot.image=[UIImage imageNamed:@"check-white-hi.png"];
    [cell addSubview:dot];
    cell.accessoryView = dot;
    isSelected = YES;
}
else {
    cell.accessoryView = nil;
    isSelected = NO;
}

如果从一个单元格中删除附件视图,以及如何在应用程序的整个生命周期中维护这一点,我们将不胜感激。

谢谢

【问题讨论】:

    标签: ios iphone uitableview accessoryview


    【解决方案1】:

    在您的 .h 文件中创建一个属性

    @property (nonatomic,retain)NSIndexPath * checkedIndexPath ;
    

    在你的 .m 文件中合成

    @synthesize checkedIndexPath;
    

    在您的 didSelectRowAtIndexPath 方法中编写此代码

    if(self.checkedIndexPath)
    {
       UITableViewCell* uncheckCell = [tableView
                                        cellForRowAtIndexPath:self.checkedIndexPath];
        uncheckCell.accessoryType = UITableViewCellAccessoryNone;
    }
    if([self.checkedIndexPath isEqual:indexPath])
    {
        self.checkedIndexPath = nil;
    }
    else
    {
       UITableViewCell* cell = [tableView cellForRowAtIndexPath:indexPath];
        cell.accessoryType = UITableViewCellAccessoryCheckmark;
        self.checkedIndexPath = indexPath;
    }
    

    【讨论】:

    • 这简直太棒了。非常感谢。重新加载视图时,如何为所选单元格维护此 UITbleViewCellAccessoryCheckmark?如果我选择此单元格,转到另一个视图并返回,“选定”单元格不会保留在那里?
    • 我已经问过另一个关于 NSUserDefaults 和维护选定状态的问题:stackoverflow.com/questions/22764081/… - 感谢您对此的帮助
    猜你喜欢
    • 2018-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多