gpt4 book ai didi

ios - 在两个 Controller 之间发送 UIImage 是否正确?

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

在两个 Uiviewcontroller 之间发送 UIImage 是否合适?

我正在完成 CS193P Spring - Smashtag 的作业 4。

在那里,我必须实现提及 TableView (这是一种推文的附加数据:提及、主题标签、图像、网址)。我必须将图像放置到那里的适当单元格中。为此,我已经下载了它。之后,如果用户点击其中一张图像,它应该转到另一个 UIViewController,用户可以在其中缩放和滚动图像。

在我见过的许多例子中,人们发送图像的 url 并一次又一次地获取它(对于提及 Controller 和另一个 Controller 的相同图像)。我认为这会降低性能。所以我在 Controller 之间发送 UIImage 对象。

但是这是正确的吗?

    // MARK: - Navigation
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == Storyboard.SearchSegue {
if let svc = segue.destinationViewController as? SearchResultsTableViewController {
if let cell = sender as? TextTableViewCell {
if let text = cell.hashtagLabel.text {
if text.hasPrefix("@") || text.hasPrefix("#") {
svc.searchText = text
}
}
}
} else if let svc = segue.destinationViewController as? ImageViewController {
if let cell = sender as? ImagesTableViewCell {
svc.image =
}
}
}
}

svc.image 是 var:

    var image: UIImage? {
get {
return imageView.image
}
set {
imageView.image = newValue
imageView.sizeToFit()
scrollView?.contentSize = imageView.frame.size
}
}

和 cell.imageVar

    var imageVar: UIImage? {
get {
return imageField.image
}

set {
imageField.image = newValue
spinner.stopAnimating()
}
}

获取函数

    private func fetchImage () {
if let u = url {
spinner?.startAnimating()
dispatch_async(dispatch_get_global_queue(QOS_CLASS_USER_INITIATED, 0)) {
let contentsOfURL = NSData(contentsOfURL: u)
dispatch_async(dispatch_get_main_queue()) {
if u == self.url {
if let imageData = contentsOfURL {
self.imageVar = UIImage(data: imageData)
} else {
self.spinner.stopAnimating()
}
}
}
}
}
}

最佳答案

只有当您使用不同的图像尺寸时,这才有意义。例如,如果您在单元格中使用图像,则应该使用小图像(缩略图)以使下载速度更快。然后,当您看到细节并想要缩放图像时,您应该使用更大的图像(因此您必须使用 url 检索它)。但是,如果您只有一种图像尺寸,则通过 View Controller 传递 UIImage 是完全正确的。

关于ios - 在两个 Controller 之间发送 UIImage 是否正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38120926/

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