Tôi tạo ô tùy chỉnh với 2 nhãn nhiều dòng và ghim nhãn này vào tất cả các cạnh. Khi ở trong -tableView:heightForRowAtIndexPath:
cho iOS> = 8 Tôi trả lại UITableViewAutomaticDimension
. Nhưng khi xem bảng xuất hiện chiều cao ô là lớn hơn nên được. Sau khi tôi di chuyển xuống và sau đó di chuyển lên các tế bào có chiều cao bình thường. Cách khắc phục hành vi này?Chiều cao UITableViewCell sai với UITableViewAutomaticDimension
Mã cho height:
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8) {
return UITableViewAutomaticDimension;
}
static CCTopicTableViewCell *cell;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
cell = [tableView dequeueReusableCellWithIdentifier:@"topicCellIdentifier"];
});
cell.topic = [self.topics topicAtIndexPath:indexPath];
cell.bounds = CGRectMake(0, 0, CGRectGetWidth(self.tableView.bounds), CGRectGetHeight(cell.bounds));
[cell setNeedsLayout];
[cell layoutIfNeeded];
CGSize size = [cell.contentView systemLayoutSizeFittingSize:UILayoutFittingCompressedSize];
return size.height + 1;
}
Và kết quả:
Sau khi di chuyển:
Cảm ơn, điều này đã khắc phục được sự cố của tôi. Không chắc tôi hiểu tại sao nó sửa chữa nó nhưng tôi chắc chắn sau khi nghiên cứu thêm về chủ đề Nó sẽ đến với tôi. Cảm ơn một lần nữa! –
Bất kỳ ý tưởng nào _why_ hoạt động này? –