zoukankan      html  css  js  c++  java
  • 转:解决uitableviewcell重绘出现重叠的现象

    当我们的uitableview为透明或者判断cell是否为空时,会发现uitableveiwcell会出现重叠,下面为自己的解决办法,提供给各位参考
    -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
        UITableViewCell *cell=nil;
        static NSString *reuse=@"cell";
        if (cell==nil) {
            cell=[[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:reuse] autorelease];
        }else{
            while ([cell.contentView.subviews lastObject] != nil) {  
                [(UIView*)[cell.contentView.subviews lastObject] removeFromSuperview];  //删除并进行重新分配
            }  
        }
        
        cell.textLabel.text=@"cell";
        
        return cell;
    }

    转:http://blog.sina.com.cn/s/blog_75b6e3a601015u4s.html

    更好的写法:

    -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
    {
        static NSString *cellIdetify = @"cell";
        UITableViewCell *tvCell = [tableView dequeueReusableCellWithIdentifier:cellIdetify];
        
        if(tvCell == nil)
        {
            NSLog(@"cell = nil");
            tvCell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdetify] autorelease];
        }else{
            NSLog(@"cell !=nil ");
            NSArray *views = [tvCell subviews];
            for (UIView *obj in views) {
                if (obj.tag==1000 || obj.tag==2000) {      //只删除指定的画面,不要全部删除,否则tableview的分割线也会被删除
                    NSLog(@"cell 要删除的子画面是:%@",[obj class]);
                    [obj removeFromSuperview];
                }
            }
  • 相关阅读:
    Centos安装Memcached和(Nginx)Memcache扩展详细教程
    文章已被删除!
    phonegap安卓手机开发入门
    微信分享链接带图片文字和描述
    CSDN数据库被爆 统计CSDN用户都喜欢哪些密码
    ...
    重新初始化 VS2010
    spark系列之基本概念
    python 数字字典加密非汉字
    MySQL 5.7实现 row_number窗口函数
  • 原文地址:https://www.cnblogs.com/ygm900/p/3134450.html
Copyright © 2011-2022 走看看