我有tableView
有12张图片。每行1个。图像大小为536 x x536 px(对于@ 3x为804 x 804),全部为JPG格式,文件大小约为250kb。当我使用模拟器时,内存仅为tableView
达到40MB。是的,我使用了dequeueReusableCellWithIdentifier
。这是截图:
这是正常的吗?或者我如何改进它?因为我使用UIImage(named:....)
所以它被缓存了。
我还没有尝试使用真正的设备,还在等我的信用卡.. :)
这里是cellForRowAtIndexPath
的代码:
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let kolom = tableView.dequeueReusableCellWithIdentifier("portraitkolom", forIndexPath: indexPath) as portraitdetailTableViewCell
let portrait = portraits[indexPath.row]
kolom.portraitdetailgambar.image = UIImage(named: portrait.thumbImage)
kolom.portraitdetailgambar.layer.shadowColor = UIColor(red: 200.0/255.0, green: 200.0/255.0, blue: 200.0/255.0, alpha: 1.0).CGColor
kolom.portraitdetailgambar.layer.shadowOffset = CGSizeMake(0, 2)
kolom.portraitdetailgambar.layer.shadowRadius = 0
kolom.portraitdetailgambar.layer.shadowOpacity = 1.0
return kolom
}
更新:
使用UIImage(contentsOfFile:)
似乎有点减少了内存使用量。
这是截图:
更新代码:
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let kolom = tableView.dequeueReusableCellWithIdentifier("portraitkolom", forIndexPath: indexPath) as portraitdetailTableViewCell
let portrait = portraits[indexPath.row]
let paths = NSBundle.mainBundle().pathForResource(portrait.thumbImage, ofType: "jpg", inDirectory: "portraitthumb")
kolom.portraitdetailgambar.image = UIImage(contentsOfFile: paths!)
kolom.portraitdetailgambar.layer.shadowColor = UIColor(red: 200.0/255.0, green: 200.0/255.0, blue: 200.0/255.0, alpha: 1.0).CGColor
kolom.portraitdetailgambar.layer.shadowOffset = CGSizeMake(0, 2)
kolom.portraitdetailgambar.layer.shadowRadius = 0
kolom.portraitdetailgambar.layer.shadowOpacity = 1.0
return kolom
}
但仍然是32MB ..这是正常的吗?
它看起来像UIImage(contentsOfFile:)
没有检测到@ 2x或@ 3x图像(区分大小写?)..所以我将我的图像重命名为someimage.jpg(以前someimage@3x.jpg)。这是对的吗?
感谢。
答案 0 :(得分:2)
如果你想在你的手机中想要图像,可以给你一些提示:
来自HERE的参考。
答案 1 :(得分:0)
只是为了提高绩效。执行以下步骤
详情请点击此链接: http://www.jorambarrez.be/blog/2012/04/19/ios-imagenamed-vs-imagewithcontentsoffile/