本帖最后由 wolf_y 于 2014-12-03 15:46:10 编辑

解决方案 »

  1.   

    如果setExtended的方法是创建创建出uilabel等控件出来的话,那么你每次在调用这个方法前就要把他们清楚掉,比如 [cell removeAllSubviews],然后在调用这个方法进行创建,否则的话一定会重复
      

  2.   

    我之前试过    for (UIView *ve in cell.subviews) {
            [ve removeFromSuperview];
        }但是无效。
      

  3.   

    不会吧,那你在
    IMSPExtendedListTableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:TableExtendedCell_Identifier];
    这句后面加个判断
    if (cell==nil)
    {
     cell=[[IMSPExtendedListTableViewCell alloc] initwith ........];
    }
    试试
      

  4.   

    这个要看你是用什么方法进行cell的。以uiview返回作为cell 的View来说,你把label放在上边,那么生成label的地方,就不能只接用alloc一类的方法,而是先用viewWithTag查找,找到了,只修改对应数值,没找到,再创建。
    或者就象上边所说,在 cellForRowAtIndexPath中,找到直接删除,再创建。
    Reusablecellwithidentifier,对cell的复用,除非你的 label的布局永远不变,你可以在生成cell 的uiview时,进行判断。这样写很麻烦,但速度比较快。
      

  5.   

    这个我实验了,不行,不知道是不是我实验错误,cell一直不nil
      

  6.   

    按照这个思路,解决了问题,直接用的话,朋友换行的还需要做处理 ,所以找到直接的removeFromSuperview。
    thanks very much.