2 exit door eXit_door 于 2013.05.30 11:25 提问

UITableView 设置行高度崩溃

在iPhone应用中有四种单元,每个高度都不同。在给每个tableView设置高度的方法崩溃。

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
    UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:indexPath];
    NSLog(@"%@", cell);
    if([cell.reuseIdentifier isEqualToString:PastEventWICellIdentifier]){
        return 56;
    }
    if([cell.reuseIdentifier isEqualToString:PastEventWOICellIdentifier]){
        return 56;
    }
    if([cell.reuseIdentifier isEqualToString:EventWICellIdentifier]){
        return 112;
    }
    if([cell.reuseIdentifier isEqualToString:EventWOICellIdentifier]){
        return 112;
    }
    return 56;
}

2个回答

u010778803
u010778803   2013.05.30 11:45
已采纳

不同高度不会崩溃。
崩溃是因为你在heightForRowAtIndexPath 方法中调用 了cellForRowAtIndexPath,导致死循环。。。

建议用其他方式判断高度。

zhanglei5415
zhanglei5415   Rxr 2013.05.30 14:03

原因出在heightForRowAtIndexPath 方法中你使用

UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:indexPath];

来获取uitableviewcell会导致无限循环.而致应用崩溃.
有两种方法可以解决:
1.

self.tableView.delegate=nil;
UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:indexPath];
self.tableView.delegate=self;

2.

UITableViewCell *cell=[self tableView:tableView cellForRowAtIndexPath:indexPath];
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
UITableViewCell设置行距
自定义UITableViewCell设置行距创建Custom类继承自UITableViewCell 重写其-(instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier;方法-(instancetype)initWithStyle:(UITableViewCel
UITableviewCell使用以及自定义高度
UITableView号称是 ios里面最难使用也是最复杂的一个控件? 是不是暂且不说,反正我觉得HttpRequest也是挺复杂的。 但确实被UItableview折磨了一段时间,还好搞定了一小半。 一、如何重用UITableviewCell  重用的目的是为了减少内存消耗,假如有1千个cell,如果不重用,那么每一次滑动都得重新 alloc 很多很多的cell,耗费内
关于UITableView的一个崩溃现象分析
*** Assertion failure in -[UITableView _endCellAnimationsWithContext:], /SourceCache/UIKit_Sim/UIKit-3318.16.14/UITableView.m:1582 出现这个奔溃的现象原因在下面这行代码中 - (NSInteger)tableView:(UITableView *)tableView
iOS动态改变UITableView的tableViewHeader的高度
这几天开发的时候,有个需要动态改变tableViewHeader的界面,当时是直接在viewDidLoad里面设置了一下tableViewHeader=viewHeader;(现假设viewHeader是tableView的头部视图) 然后在从服务器拿到数据以后,动态设置了viewHeader的高度,发现竟然没有效果... 那么我们简单分析一下: viewHeader 作为 tableV
状态栏,tableView分区样式的设置
修改状态栏(哪一页需要改,在哪一页重写方法) // 9.0以后,修改状态栏的方法发生了变化,需要在当前要修改的viewController里重写方法 - (UIStatusBarStyle)preferredStatusBarStyle{ return UIStatusBarStyleLightContent; } // 状态栏隐藏 - (BOOL)prefersStatusBarHi
如何在Autolayout的模式下动态设置 UITableView的 tableHeader 的高度
最近遇到一个 问题,就是使用单独的一个 xib文件 autolayout来创建一个 UITableView的 tableHeader.  这个 xib是一个动态高度的View。        所以就有个问题,用xib 创建完的 View是 固定高度的,如果直接用 :      m_contentTableView.tableHeaderView= headerView; 
UITableView beginUpdate和endUpdate使用的前提
UITableView有两个方法,用于单元格动画变化的方法,beginUpdate,endUpdate,这两个方法使用时需要注意。如果使用不当,会造成crash 在了解使用注意事项之前,我们先看官方文档的描述。 Call this method if you want subsequent insertions, deletion, and selection operations (for
vc 重绘clistbox各项设置不同的行高
vc 重绘clistbox各项设置不同的行高, if((lpDrawItemStruct->itemAction | ODA_FOCUS) && (lpDrawItemStruct->itemState & ODS_FOCUS)) {…} else if ((lpDrawItemStruct->itemAction | ODA_SELECT) && (lpDrawItemStruct->itemState & ODS_SELECTED)) { …} Else { …} 把这几行代码全部注掉,换成下面这行代码 pDC->SetTextColor(COLOR_HIGHLIGHTTEXT); 这样,选定一行,其它行的字体颜色就一会变了
iOS开发-UI控件:动态改变UITableView中的Cell高度
文章转自: http://xiaoxuejie.iteye.com/blog/1643044 往往在开发iPhone的应用过程中用得最多的应该算是UITableVIew了,凭着IOS给UITableView赋予了这种灵活的框架结构,让它不 管在显示列表方面还是在排版方面都有着一定的优势。虽然UITableView功能强大,但是对于一些复杂的应用需求在开发的过程中会出现一些问题,如动 态改
JQuery 中 dataGrid 设置行的高度
columns:[[   {field:"activitycontent",title:'活动内容',width:fixWidth(0.18),align:"center",halign:"center", formatter:function(value,rec){ if(value.indexOf("src")<0){ if(rec.activitycontent.length>M