- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"MyCell";
MyCustomCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
if (cell == nil)
cell = [[MyCustomCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
Movie *movie = [self.movies objectAtIndex:indexPath.row];
cell.title.text = movie.title;
cell.subtitle.text = movie.subtitle;
cell.subtitle.numberOfLines = 0;
[cell.subtitle sizeToFit];
return cell;
}
我打电话给reloadData
从两个地方。一个是从viewDidLoad
调用的loadInitialData
函数的结尾。self.tableView reloadData不工作,以垂直居中我的标签文本
第二个从viewDidAppear
被调用,虽然这对我的问题是无关紧要的,因为它存在于它之前并且没有它。
我最初加载3行样本数据,标题和字幕。现在,当这个窗口第一次启动时,我的字幕文本会垂直居中。如果我抓住桌子并滚动高度,突然间,我的[cell.subtitle sizeToFit]
开始起作用,并且我的文字垂直向上,这是所需的。
所以我的问题是...为什么文本垂直居中从一开始? reloadData
也不起作用。当我从添加新行返回时,除了新添加的行之外,所有行都按照它们应该垂直对齐的方式排在最前面。新行错误地垂直居中。
为什么不能正常工作?一切似乎都很好。新数据被添加等通过NSLog
声明,我已经验证numberOfRowsInSection
是在调用reloadData
后立即调用。
那么,为什么文本垂直顶部对齐不起作用?
谢谢!
谢谢斯蒂芬。我应该提到我也尝试过这种方法,但它也没有解决我的问题。我真的很难过这个。 –
查看单元格和contentView的框架,以查看它们是否在初始调用cellForRowAtIndexPath时的大小正确。 –