cellForRowAtIndexPath 只被调用一次
Posted
技术标签:
【中文标题】cellForRowAtIndexPath 只被调用一次【英文标题】:cellForRowAtIndexPath is getting called only once 【发布时间】:2013-07-17 18:04:21 【问题描述】:我不知道我做错了什么,但是表格视图的 cellForRowAtIndexPath
方法只被调用一次。
这是我的代码:
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
NSLog(@"--->%d",[collaboratoresdata count]);
return [collaboratoresdata count];
当我的collaboratoresdata
数组被填满时,我会调用[_collaboratortblView reloadData]
来重新加载表格视图。
我在NSLog(@"--->%d",[collaboratoresdata count]);
中成功获取了3
,但cellForRowAtIndexPath
只被调用了一次。
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
static NSString *CellIdentifier = @"Cell";
// add a placeholder cell while waiting on table data
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil)
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:nil] autorelease];
cell.selectionStyle=UITableViewCellSelectionStyleNone;
NSLog(@"tableView:%d",[indexPath row]);// i am getting 0 here than after its not calling
return cell;
【问题讨论】:
屏幕上显示什么? 在你的 NSLog 之后写 cell.textLabel.text = @"hi"; @HotLicks 它只显示数组的第一个元素。 @AbdullahShafique 虽然我的数组有 3 个值,但它只显示了一个单元格。 是的。并且由于 tableView 仅在实际显示单元格时才调用cellForRowAtIndexPath:
,因此了解您是否可以滚动非常重要。如果单个单元格高于整个 tableView tableView:cellForRowAtIndexPath:
将被调用一次。
【参考方案1】:
检查单元格的高度我认为这是问题
【讨论】:
【参考方案2】:please try to set height of cell manually(custom). So, if problem of cell height then it will be resolved. below method set cell height 30 pixels.
#pragma mark- TableView delegate Methods
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
return 30.0f;
【讨论】:
以上是关于cellForRowAtIndexPath 只被调用一次的主要内容,如果未能解决你的问题,请参考以下文章
cellForRowAtIndexPath:XCode 模板是不是正确?
从 cellForRowAtIndexPath 中调用 heightForRowAtIndexPath?
cellForRowAtIndexPath:reloaddata 未调用