gpt4 book ai didi

ios - 在 UITableViewCell 中填充动态图像

转载 作者:行者123 更新时间:2023-11-30 13:58:06 25 4
gpt4 key购买 nike

我正在尝试制作一款具有匿名提要的应用程序,就像 Instagram 一样。我使用 AFNetworking 下载 JSON 数据,使用 SDWebImage 添加和缓存图像。

当我加载可变尺寸图像时,我希望表格 View 单元格自动调整其高度。

现在的问题是,当应用程序加载时,图像无法正确显示,但在我向下滚动并滚动回同一单元格后,图像完全按照我想要的方式调整自身,但图像上方和下方始终有一个空格.

滚动之前

<小时/>

enter image description here

向后滚动后

<小时/>

enter image description here

以下是 UIImage View 的约束:

  1. super View 的尾随空格:0
  2. super View 的前导空格:0
  3. 顶部空间:8
  4. 底部空间:8
  5. 内部尺寸设置为占位符,内容模式设置为宽高比。

这是我的 ViewDidLoad 方法的代码:

 override func viewDidLoad() {
super.viewDidLoad()

self.navigationController?.navigationBar.barTintColor = UIColor.yellowColor()

feedList = NSMutableArray()

self.feedTable.rowHeight = UITableViewAutomaticDimension
self.feedTable.estimatedRowHeight = 200.0

var connection : CommunicationManager! = CommunicationManager()

//initiate a connection and load feed data
connection.getFeedData( { (response, error) -> Void in

if(response != nil){
dispatch_async(dispatch_get_main_queue(), {

self.feedList = response
self.feedTable.hidden = false
self.feedTable.reloadData()
})

}

}

TableView 的 CellForRowAtIndex:

  func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! FeedTableViewCell


let feedData : NSDictionary! = feedList[indexPath.row] as! NSDictionary

let imgURL : NSURL! = NSURL(string: feedData.valueForKey("image_name") as! String)
cell.feedImage.sd_setImageWithURL(imgURL, placeholderImage: UIImage(named: "LoadingImage"))

return cell
}

我尽了最大努力来解决这个问题,但未能成功。谁能告诉我如何使用 Storyboard解决这个问题。提前致谢。

最佳答案

您需要调用layoutIfneeded方法:使用以下代码:-

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
CustomTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cellId"];

[cell.nImageView sd_setImageWithURL:[NSURL URLWithString:[imageUrlArray objectAtIndex:indexPath.row]] completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) {
cell.widthConst.constant = image.size.width;
[cell layoutIfNeeded];
[cell layoutSubviews];

}];

return cell;

}

如果你想要动态宽度,那么你需要添加固定宽度约束并在 block 中更新它。

引用截图image image2

关于ios - 在 UITableViewCell 中填充动态图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33349522/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com