首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么UITableViewCell AccessoryView:将accessoryView设置为UIImageView无限循环

为什么UITableViewCell AccessoryView:将accessoryView设置为UIImageView无限循环
EN

Stack Overflow用户
提问于 2016-04-07 11:50:43
回答 1查看 98关注 0票数 0

我有一个定制的UITableView,它有两种类型的单元格。一个单元格设置为在一个类型为checkmark的普通附件之间切换。另一个单元格设置为具有自定义图像作为附件类型。当被选中时,该附件图像将更改为其相反的类型,显示“选定”或“未选定”消息。

代码语言:javascript
复制
 if (self.selectedIndex == indexPath.row) {
                cell.accessoryView = self.selectedImageView;
            }else
                cell.accessoryView = self.unSelectedImageView;

如果重要,UIImageViews将按以下方式初始化:

代码语言:javascript
复制
-(UIImageView *)selectedImageView
{
    if (!_selectedImageView) {
        _selectedImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Check"]];
    }
    return _selectedImageView;
}
-(UIImageView *)unSelectedImageView
{
    if (!_unSelectedImageView) {
        _unSelectedImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"noCheck"]];
    }
    return _unSelectedImageView;
}

我看到有人回答了这个问题:UITableCell AccessoryView: Setting accessoryView equal to UIImageView infinite loop

他说:我自己想出了答案,但这是给其他需要它的人的: UIImageViews不能共享,所以每个可见单元格都需要对每个UIImageView进行不同的实例化。现在你知道了。

但我不知道为什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-07 12:05:34

UIView只能是父视图的子视图,因此一旦将UIImageView添加到一个单元格中,就不能将其添加到其他单元格中。

UIImage没有这个限制,所以您可以修改代码,使其具有与现在相同的selectedImageunSelectedImage方法,甚至可以修改当前的方法,以便它们每次都返回一个新的UIImageView。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36475347

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档