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];
                }
            }
  • 相关阅读:
    注册验证
    翻页加输入框
    php面向对象
    封装数据库
    浅谈BFC和haslayout
    总结JS面向对象
    总结(JS)
    转载6
    总结(5.30)
    总结(5.29)
  • 原文地址:https://www.cnblogs.com/ygm900/p/3134450.html
Copyright © 2011-2022 走看看