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];
                }
            }
  • 相关阅读:
    机器学习之线性回归
    斯坦福机器学习【5】生成学习算法(高斯判别与朴素贝叶斯)
    网络编程
    正则表达式
    Mysql
    python爬虫
    nginx
    maven基础
    sping入门
    河北省重大技术需求征集八稿第一天
  • 原文地址:https://www.cnblogs.com/ygm900/p/3134450.html
Copyright © 2011-2022 走看看