我想实现一个动态行高的tableview。高度基于从服务器返回的图像数据。
根据设置的行高,为必须加载的图像绘制行。
但是在加载图像并将其分配到表格的图像视图后,UITableview会自动滚动到其他位置。
是因为行再次被绘制了吗?或者
桌子的偏移会受到干扰吗?
使用UIGraphicsBeginImageContextWithOptions(size,!hasAlpha,scale)缩放图像
我甚至尝试在每次配置单元格时以编程方式更改imageView的高度约束。我已经看到很多自动布局的示例使用动态高度,但似乎没有任何效果。
func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
// constant to control height of other views
return getCellHeight(indexPath.row) + someConstant
}
func getCellHeight(index: Int) -> CGFloat {
// Returns the height of image object based on some cropping and scaling
return imageHeight
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier(CELL_IDENTIFIER, forIndexPath: indexPath) as! PostCell
...
cell.configureForPost(postObject, index: indexPath.row)
cell.postImage.sd_setImageWithURL(NSURL(string: imageUrl)
, placeholderImage: placeholder
, completed:{(image: UIImage!, error: NSError!, cacheType: SDImageCacheType, imageURL: NSURL!) -> Void in
if (image != nil) {
// do some scaling and assign image to imageView
}
})}
return cell
}