我正在使用自定义单元格使用Facebook Graph API显示Facebook页面的帖子。我正在获取JSON数据,我将所有帖子转换为msgArray,然后将此msgArray传递给我的视图控制器,其中我有我的表视图,然后使用此msgArray填充自定义单元格中的数据。但是,当我在自定义单元格中显示数据时,它只为表格视图的所有单元格加载标签中的一行文本(postText:labelName),当我上下滚动它时,几个单元格是显示完整的文本,很少只显示一行文本,这取决于我等待文本加载的程度。
以下是我的表格视图代码:
(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return [msgArray count];
}
(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSString *cellIdentifier=@"Cell";
CustomCell *cell= [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
//UITableViewCell *tablecell=[tableView dequeueReusableCellWithIdentifier:cellIdentifier];
if(cell==nil)
{
NSArray *nib=[[NSBundle mainBundle] loadNibNamed:@"CustomCell" owner:self options:nil];
cell=[nib objectAtIndex:0];
}
//if(cell==nil)
// {
// cell=[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];
//}
cell.postText.lineBreakMode=NSLineBreakByWordWrapping;
cell.postText.numberOfLines=0;
[cell.postText sizeToFit];
cell.postText.text=[msgArray objectAtIndex:indexPath.row];
return cell;
}
(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
//This function is calculating my height for each row depending upon text length which is correct.
NSString *text=[msgArray objectAtIndex:indexPath.row];
CGSize constraint=CGSizeMake(300,20000.0f);
CGSize size=[text sizeWithFont:[UIFont systemFontOfSize:17.0] constrainedToSize:constraint lineBreakMode:NSLineBreakByWordWrapping];
CGFloat height=MAX(size.height,44.0f);
return height+(100*2);
}
还有一件事,如果我使用的是默认UITableViewCell,并将文本设置为cell.textLabel.text=[msgArray objectatIndex:indexPath.row];
,它会正确显示数据。
请帮我摆脱这个。提前谢谢。
答案 0 :(得分:0)
您是否尝试将其numberOfLines属性更改为0?默认情况下为1。
cell.textLabel.numberOfLines = 0;