大多数情况下,当我的应用程序正常工作时,我的表格视图项目如下所示:
但是每隔一段时间(初始加载时)看起来就像这样:
如您所见,图像已调整大小,“已发布的”标签已调整大小。
为什么会这样?相同的代码/故事板应该以相同的方式影响所有单元格?为什么有些人没有做他们被告知的事情?
如果有帮助,当一个单元格加载错误的方式时,我所要做的就是向上滚动,然后再向下滚动,问题就解决了!
这意味着图像或文本数量显然没有问题,只是iPhone正在表现吗?
感谢您的帮助!
答案 0 :(得分:1)
我认为它的细胞出列问题了。您的细胞无法计算细胞的正确高度。如果您使用的是autolayout,请尝试以下代码。希望它对你有用。
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
static YOUR_TABLEVIEW_CELL *sizingCell = nil;
static NSString *CellIdentifier=@"YOUR_TABLEVIEW_CELL_IDENTIFIER";
sizingCell =[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (sizingCell==nil)
{
sizingCell=[[YOUR_TABLEVIEW_CELL alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
[self configureFareIssueCell:sizingCell atIndexPath:indexPath];
return [self calculateHeightForConfiguredSizingCell:sizingCell];
}
//assign all the lables & images here
- (void)configureFareIssueCell:(YOUR_TABLEVIEW_CELL* )cell atIndexPath:(NSIndexPath *)indexPath
{
//e.g
cell.lbl.text=@"YOUR_TEXT";
cell.imageView.image=[UIImage imageNamed:@"NAME_OF_YOUR_IMAGE"];
}
- (CGFloat)calculateHeightForConfiguredSizingCell:(YOUR_TABLEVIEW_CELL *)sizingCell
{
CGSize size = [sizingCell.contentView systemLayoutSizeFittingSize:UILayoutFittingCompressedSize];
return size.height + 1.0f; // Add 1.0f for the cell separator height
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier=@"YOUR_TABLEVIEW_CELL_IDENTIFIER";
YOUR_TABLEVIEW_CELL *cell =[tableView dequeueReusableCellWithIdentifier:@"YOUR_TABLEVIEW_CELL_IDENTIFIER"];
if (cell==nil)
{
cell=[[YOUR_TABLEVIEW_CELL alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
[self configureFareIssueCell:cell atIndexPath:indexPath];
return cell;
}
答案 1 :(得分:0)
您是否使用图层蒙版创建圆角图像?如果是,您会看到这种奇怪的行为,因为在UITableView为单元格分配正确的帧之前创建了图层蒙版,因此图层蒙版将具有不正确的帧。