歪歪不知道

导航

解决 iOS7 通过tag 找不到 UITableViewCell 的子控件

 当iOS7问世,程序的世界就混乱了,以前良好的程序,现在是一塌糊涂,于是只能把问题一个一个攻破。  

 由于项目当中需要每个cell显示数目不同的图片,于是我在每个cell 赋值之前,通过一下方法把cell上面的控件移除

  for (UIView *view in [cell subviews]) {

        if (view.tag>=10000) {

            [view removeFromSuperview];

        }

    }

可是谁知道,系统升级成iOS7就不成功了,cell上面一团乱,仔细查找了一下,发现7的cell上多了一层 UITableViewCellScrollView

虽然控件是[cell addsubview:label];但是 [cell subviews]的第一层是个srollview 所以通过tag根本找不到你想要的控件

解决办法

这个可以有两个办法解决

1.再多交一层for

  for (UIView *view in [self subviews]) {

        for (UIView *viewsub in [view subviews]) {

            if (view.tag>=10000) {

                [view removeFromSuperview];

            }

        }

     }

 

2.就是控件不要直接加到cell上面 ,而是加到 contentView上面 

  [self.contentViewaddSubview:button ];

 

 

   这样姐可以解决了!!!

 

个人觉得第2种方法比较好,当然还是要根据设计需求来选择咯

 

 

 

 

 

posted on 2013-09-26 11:05  歪歪不知道  阅读(740)  评论(0编辑  收藏  举报