所以我有一个Feed显示用户发布的帖子(使用Parse)。目前,单元格包含标题,发布的用户的个人资料图像,日期,内容(文本),图像视图(用于他们发布的图像)等等。评论按钮。
我的问题是,使用自动布局显示他们发布的图像的最佳方法是什么。目前我的imageView高度始终设置为0,然后我在代码中引用imageView的常量高度。 该应用程序下拉所有帖子并开始加载postView的帖子。
在单元格中加载图像的代码是
if let imageToFetch = post.objectForKey("postImage") as? PFObject {
self.postImageHeight.constant = 500
if let fetchImage = imageToFetch.objectForKey("image") as? PFFile{
fetchImage.getDataInBackgroundWithBlock {
(imageData: NSData?, error: NSError?) -> Void in
if error == nil {
if let imageData = imageData {
let image = UIImage(data:imageData)
self.postImage.image = image
self.imageGesture(self.postImage)
}
}
}
} else {
//Make the size constarints of the image 0
self.postImageHeight.constant = 0
}
但这似乎是一种不稳定的方法,因为我对图像高度进行了硬编码。任何关于这个问题的帮助都会受到关注。
答案 0 :(得分:0)
您可以使用图片size
属性更改它们。但为此,您需要使用此处引用的固定宽度kImageWidth
self.postImageHeight.constant = kImageWidth * image.size.height / image.size.width
self.layoutIfNeeded()
答案 1 :(得分:0)
简单回答:在设置postImageHeight
后手动计算postImage.image
:
/// .....
self.postImage.image = image
self.postImageHeight.constant = self.postImage.bounds.size.width * image.size.height / image.size.width
/// .....
更好的选择是向UITableViewCell
子类添加特殊方法:
func setPostImageWithImage(image: UIImage?) {
postImageView.image = image
// Manually adjust image height.
if let image = image {
postImageViewHeightConstraint.constant = postImageView.bounds.size.width * image.size.height / image.size.width
}
else {
// Collapse if there is no image.
postImageViewHeightConstraint.constant = 0
}
}