- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath不执行的问题

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath不执行基本上只有3个原因

1. delegate没设,一定要有self.tableView.delegate = self

2. section,row的个数返回为0,或者有冲突

3. tableView的frame有问题,比如位(0,0,0,0)

我遇到的问题比较奇葩,因为我喜欢在代码里添加约束,所以都是先

initWithFrame:CGRectZero,然后添加约束。这样初始化tableView的时候它的frame为(0,0,0,0),所以不执行cellForRowAtIndexPath。

后来想了一些方法,总是有问题,后来发现:

添加的约束在viewDidLoad和viewWillAppear里都没有生效,只有在viewDidAppear里才生效,可能这就是代码添加约束的弊端。

时间: 2024-10-19 13:29:58

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath不执行的问题的相关文章

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;方法意思

这个方法是用来设置你的TableView中每一行显示的内容和格式的. indexPath 用来指示当前单元格,它的row方法可以获得这个单元格的行号,section方法可以获得这个单元格所处的区域号 static NSString *CellIdentifier = @"cell";//可复用单元格标识 UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; if (ce

UI-关于tableView编辑 tableView移动 的代码理解

1 #import "ViewController.h" 2 3 #pragma mark- 编辑的步骤 4 //UITableView编辑步骤 5 @interface ViewController ()<UITableViewDelegate, UITableViewDataSource> 6 {//第一步;UITableView有两种编辑状态 默认是删除状态,所以我们要一个容器 保存我们想要的状态 7 UITableViewCellEditingStyle _edit

UITableView代理cellForRowAtIndexPath不执行的相关解决方案

郝萌主倾心贡献,尊重作者的劳动成果,请勿转载. 如果文章对您有所帮助,欢迎给作者捐赠,支持郝萌主,捐赠数额随意,重在心意^_^ 我要捐赠: 点击捐赠 Cocos2d-X源码下载:点我传送 1.是否设置代理与数据源 [table setDelegate:self]; [table setDataSource:self]; 2.numberOfSectionsInTableView是否设置 - (NSInteger)numberOfSectionsInTableView:(UITableView *

[tableView dequeueReusableCellWithIdentifier:CellIdentifier] 后面forIndexPath:indexPath参数的解释

解决以下错误: *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'unable to dequeue a cell with identifier Cell - must register a nib or a class for the identifier or connect a prototype cell in a storyboard' http://m

UITableViewCell嵌套UITableView的正确姿势

内嵌UiTableView的高度计算起来太麻烦了,如何解决,就是把二级TableVIew里面的model item做到一级,然后对不同的item类型做不同的Cell,这样就Ok了.给一个得到Cell的源码供大家参考 override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { // Get a new or recycled cell let it

IOS给tableview的cell添加长按手势执行两次(UILongPressGestureRecognizer)

这里我们为tableview添加长按手势 UILongPressGestureRecognizer *longPressGr = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(longPressAction:)]; longPressGr.minimumPressDuration = 0.5f; longPressGr.numberOfTouchesRequired = 1; [_tableV

ios uitableview button 获取cell indexpath.row

在iOS7下面已经无效,因为iOS7的层级关系发生变化 UITableViewCell->UITableViewCellScrollView->UITableViewCellContentView->Your custom view 下面有2种方法解决这个问题 -(void) visitButtonClicked:(UIButton *)sender { // 第一种,兼容所有的版本 UIView *superView = sender.superview; UITableViewCel

UITableView 中cellForRowAtIndexPath的方法没有调用的原因

在实验过程中发现cellForRowAtIndexPath方法没有被调用,发现原来是numberofRowInsection的值为0导致.当numberOfRowsInSection及 numberOfSectionsInTableView有一个或都为0时,都会造成cellForRowAtIndexPath不被调用.

IOS 自定义的UITableViewCell实现UITableView

出错:this class is not key value coding-compliant for the key 1.检查各种连线,多连线,少连线都会导致错误      2.检查自定义cell的class: 3.检查cell的file's owner的class: 4.自定义cell的Identification必须和controller中的定义一致