gpt4 book ai didi

xcode - 手动调用 heightForRowAtIndexPath

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

在我的表格 View 中,表格被加载,图像被加载,当图像被加载时,我想从我配置单元格的 ProductTableViewCell.swift 文件再次调用这个函数。

override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath:  NSIndexPath) -> CGFloat {
return cell.frame.size.height
}

我该怎么做?

编辑:

import UIKit

class ProductTableViewCell: UITableViewCell {

//var appleview: AppleProductsTableViewController!
@IBOutlet weak var productImageView: UIImageView!
@IBOutlet weak var productTitleLabel: UILabel!
@IBOutlet weak var productDescriptionLabel: UILabel!
let screenSize: CGRect = UIScreen.mainScreen().bounds



func configureCellWith(product: Product){
productImageView.image = product.image
productDescriptionLabel.text = product.description
productTitleLabel.text = product.title

var urlstring = product.imageURL

ImageLoader.sharedLoader.imageForUrl(urlstring as String, completionHandler:{(image: UIImage?, url: String) in
//self.productImageView.frame.size = orgframe.frame.size
self.productImageView.image = image!

dispatch_async(dispatch_get_main_queue(), {
self.productImageView.frame.size = (image?.size)!

while self.productImageView.frame.size.height > 0.4 * self.screenSize.height {
self.productImageView.frame.size.width = self.productImageView.frame.size.width * 0.9
self.productImageView.frame.size.height = self.productImageView.frame.size.height * 0.9
println("kleiner 2")
}
while self.productImageView.frame.size.width > 0.6 * self.screenSize.width{
self.productImageView.frame.size.width = self.productImageView.frame.size.width * 0.9
self.productImageView.frame.size.height = self.productImageView.frame.size.height * 0.9
println("kleinrer")
}
self.productTitleLabel.center.y = self.productImageView.center.y + self.productImageView.frame.size.height/2 + 15
self.productDescriptionLabel.center.y = self.productTitleLabel.center.y + 28

NSNotificationCenter.defaultCenter().postNotificationName("renew", object: nil)
})


})


}


}

enter image description here

最佳答案

只需使用:

tableView.reloadData()

所以

heightForRowAtIndexPath

将再次调用,您的所有单元格都将获得"new"计算高度。更好的想法(在大多数情况下)是使用自动布局来自动计算所需的空间。

编辑:如果你想从任何类重新加载你的表,你可以使用通知。

因此在您的 TableView 中:

 func viewDidLoad() {
super.viewDidLoad()
NSNotificationCenter.defaultCenter().addObserver(self, selector: "reloadTable:",name:"renew", object: nil)
}

func reloadTable(notification: NSNotification){
//load data here
self.tableView.reloadData()
}

这在你的手机里。

NSNotificationCenter.defaultCenter().postNotificationName("renew", object: nil)

关于xcode - 手动调用 heightForRowAtIndexPath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30991147/

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