- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在从 url 获取图像并将其显示在 tableview 中,这成功发生了,但是当我自动滚动它并重复更改但是在我在那一点暂停几秒钟之后(大约 10 或更多,这是相当长的时间)加载正确的图像。
func load_image(urlString:String)
{
let imgURL: NSURL = NSURL(string: urlString)!
let request: NSURLRequest = NSURLRequest(URL: imgURL)
let session = NSURLSession.sharedSession()
let task = session.dataTaskWithRequest(request){
(data, response, error) -> Void in
if (error == nil && data != nil)
{
func display_image()
{
cell.pic.image = UIImage(data: data!)
}
dispatch_async(dispatch_get_main_queue(), display_image)
}
}
task.resume()
}
load_image(urls[indexPath.row])
最佳答案
首先,我猜为什么要在 cellForRowAtIndexPath
中加载图像?您可以在 viewDidLoad
中加载它并存储在某个数组中。但是如果你需要像你现在那样做......
为了获得更好的性能,您可以使用 NSCache
来防止每次 tableview 显示您的单元格时加载图像。尝试这样的事情:
let imageCache = NSCache()
func load_image(urlString:String)
{
if let imageFromCache = imageCache.objectForKey(urlString) as? UIImage {
cell.pic.image = imageFromCache
return
}
let imgURL: NSURL = NSURL(string: urlString)!
let request: NSURLRequest = NSURLRequest(URL: imgURL)
let session = NSURLSession.sharedSession()
let task = session.dataTaskWithRequest(request){
(data, response, error) -> Void in
if (error == nil && data != nil)
{
func display_image()
{
let imageToCache = UIImage(data: data!)
cell.pic.image = UIImage(data: data!)
imageCache.setObject(imageToCache!, forKey: urlString)
}
dispatch_async(dispatch_get_main_queue(), display_image)
}
}
task.resume()
}
关于NSCache的更多信息你可以查看documentation .
关于ios - 图像在 ios 中滚动时波动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38682052/
我面临一个非常奇怪的问题。 我想实现从DataTable中删除行的选项,因此实现了以下方法: onRemoveRow() { setState( () { last
我正在 JavaScript 中处理物理问题,并且我有一个值指示“物理”世界中的接触数量。这个值可以在0-6之间。问题是i波动很大。我想要的是过滤掉尖峰。假设该数字是 3,然后在不到一秒的时间内它会变
我在 C 中有两个静态可变变量,我想在逻辑语句中检查它们。但是,当我这样做时,我收到警告“未定义的行为:此语句 1037 中未定义 volatile 访问的顺序”是否有可能在很短的时间内暂停 C 变量
我是 C Sharp 的新手,正在使用 XNA Framework 编写游戏。我创建了一个项目,它是“Platformer”XNA 入门工具包的重大修改版本。 我看到(看似)随帧率随机波动。有时它会一
我是一名优秀的程序员,十分优秀!