试图获得平滑的动态高度,目前它可以正常工作,但它从一个尺寸到动态尺寸的故障,看起来并不好。
继承我cellForRowAtIndexPath
cell.productImageView.file = (PFFile *)object[@"image"];
[cell.productImageView loadInBackground:^(UIImage * _Nullable image, NSError * _Nullable error) {
cell.imageHeightConstraint.constant = image.size.height / image.size.width * cell.cardView.frame.size.width;
[cell.productImageView setNeedsUpdateConstraints];
NSIndexPath *indexPath = [self.tableView indexPathForCell:cell];
if (indexPath != nil) {
[self.tableView beginUpdates];
[self.tableView endUpdates];
}
[UIView animateWithDuration:0.50f animations:^{
[cell.cardView layoutIfNeeded];
}];
}];
正如您所看到的,我只是更新ImageView的高度约束,然后单元格相应地调整大小。但仍然是个小故障。
有更好的方法吗?
答案 0 :(得分:1)
您可以通过viewDidLoad
和autolayout
添加以下行来解决您的问题。
_tblView.delegate = self;
_tblView.dataSource = self;
self._tblView.estimatedRowHeight = 80; // The estimatedRowHeight but if is more this autoincremented with autolayout
self._tblView.rowHeight = UITableViewAutomaticDimension;
[self._tblView setNeedsLayout];
[self._tblView layoutIfNeeded];
self._tblView.contentInset = UIEdgeInsetsMake(20, 0, 0, 0) ;
以下是更多信息:
https://www.raywenderlich.com/87975
我希望,它会帮助你......!