• UITableView 滚动时使用reloaddata出现 crash'-[__NSCFArray objectAtIndex:]: index (1) beyond bounds (0)' Crash


    例子:

    - (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

    static NSString *CellIndentifier = @"Account";
        UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIndentifier];
        
        //adjust the height for cell
        CGRect cellFrame = [cell frame];
        cellFrame.size.height = self.bgImageView.frame.size.height/2;
        
        //first time load the content
        if (cell == nil) {
            cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIndentifier] autorelease];
        
        。。。。。。。。。

    else

      //这里主要是为了在滚动屏幕时候解决屏幕内容显示错误。但是却引发了这个问题,操作为向一个方向快速反复滚动就很容易crash,应该是reload后因为使用了dequeueReusableCellWithIdentifier导致table

    无法得到正确的应当显示的cell内容和个数,导致出错。

        [viewtable  reloadData];

    解决方法:

    static NSString *CellIndentifier = @"Account";
        UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIndentifier];
        
        //adjust the height for cell
        CGRect cellFrame = [cell frame];
        cellFrame.size.height = self.bgImageView.frame.size.height/2;
        
        //first time load the content
        if (cell == nil) {
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIndentifier] autorelease];
        
    //创建所有的子视图

    }else

    {

    //移除所有的子视图

     while ([cell.contentView.subviews lastObject] != nil)
                    {
                        [(UIView*)[cell.contentView.subviews lastObject] removeFromSuperview];
                    }
    //重新添加子视图
     

    }

    这样做的效果上看不会因为删除子视图然后出现空白等待加载的不良效果

  • 相关阅读:
    设计模式之美学习-设计原则-面向对象基本概念(一)
    redis-分布式锁-设计与使用
    linux常用命令记录(一)
    redis-布隆过滤器使用
    jdk源码阅读-ConcurrentLinkedQueue(一)
    支付宝支付接口-app支付沙箱环境
    RocketMQ-安装
    支付宝支付接口-运行支付宝demo
    elasticsearch-文档-父子文档(十一)
    RTMPdump 源代码分析 1: main()函数
  • 原文地址:https://www.cnblogs.com/lisa090818/p/3388165.html
Copyright © 2020-2023  润新知