Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 快速慢速收集视图_Ios_Swift_Uicollectionviewcell - Fatal编程技术网

Ios 快速慢速收集视图

Ios 快速慢速收集视图,ios,swift,uicollectionviewcell,Ios,Swift,Uicollectionviewcell,我有一个收集视图,可以拍摄我存储的图像并显示它们。然而,当我运行它时,我得到一个内存错误和一个非常慢/滞后的显示。这是我的密码: var players = ["1", "2", "3", "4", "5", "10", "11", "12", "13", "15", "20", "22", "24", "25", "31", "31", "33", "34"] @IBOutlet weak var collectionView: UICollectionView! func numberO

我有一个收集视图,可以拍摄我存储的图像并显示它们。然而,当我运行它时,我得到一个内存错误和一个非常慢/滞后的显示。这是我的密码:

var players = ["1", "2", "3", "4", "5", "10", "11", "12", "13", "15", "20", "22", "24", "25", "31", "31", "33", "34"]


@IBOutlet weak var collectionView: UICollectionView!
func numberOfSectionsInCollectionView(collectionView: UICollectionView) -> Int {
    return 1
}

func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {

    return 17


}
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
    var cell = collectionView.dequeueReusableCellWithReuseIdentifier("MyCell", forIndexPath: indexPath) as HomeCollectionViewCell
    cell.imageViewTwo.image = UIImage(named: "\(players[indexPath.row])")
    return cell
}

有没有一种更简单的方法可以做到这一点,我还没有找到呢?

你应该用仪器来找出什么是慢的。这就是它的目的

然而,我想这条线就是问题所在:

cell.imageViewTwo.image = UIImage(named: "\(players[indexPath.row])")
如果这些图像很大,则会发生两件糟糕的事情:打开每一个图像都需要时间,而且由于显示的图像比加载的图像小得多,因此会浪费内存。这是在你滚动的时候发生的。正是出于这个原因,您在
cellForItemAtIndexPath:
中执行的所有操作都需要非常、非常快。嗯,你的实现显然不快

您有两个选择-实际上您可以同时使用这两个选项:

  • 准备更好的图像。使用
    png
    并按显示所需的实际大小使用它们

  • 使用惰性图像加载,以便在后台线程中加载图像,并且不会减慢滚动速度


你应该用仪器找出什么东西慢。这就是它的目的

然而,我想这条线就是问题所在:

cell.imageViewTwo.image = UIImage(named: "\(players[indexPath.row])")
如果这些图像很大,则会发生两件糟糕的事情:打开每一个图像都需要时间,而且由于显示的图像比加载的图像小得多,因此会浪费内存。这是在你滚动的时候发生的。正是出于这个原因,您在
cellForItemAtIndexPath:
中执行的所有操作都需要非常、非常快。嗯,你的实现显然不快

您有两个选择-实际上您可以同时使用这两个选项:

  • 准备更好的图像。使用
    png
    并按显示所需的实际大小使用它们

  • 使用惰性图像加载,以便在后台线程中加载图像,并且不会减慢滚动速度


你应该用仪器找出什么东西慢。这就是它的目的

然而,我想这条线就是问题所在:

cell.imageViewTwo.image = UIImage(named: "\(players[indexPath.row])")
如果这些图像很大,则会发生两件糟糕的事情:打开每一个图像都需要时间,而且由于显示的图像比加载的图像小得多,因此会浪费内存。这是在你滚动的时候发生的。正是出于这个原因,您在
cellForItemAtIndexPath:
中执行的所有操作都需要非常、非常快。嗯,你的实现显然不快

您有两个选择-实际上您可以同时使用这两个选项:

  • 准备更好的图像。使用
    png
    并按显示所需的实际大小使用它们

  • 使用惰性图像加载,以便在后台线程中加载图像,并且不会减慢滚动速度


你应该用仪器找出什么东西慢。这就是它的目的

然而,我想这条线就是问题所在:

cell.imageViewTwo.image = UIImage(named: "\(players[indexPath.row])")
如果这些图像很大,则会发生两件糟糕的事情:打开每一个图像都需要时间,而且由于显示的图像比加载的图像小得多,因此会浪费内存。这是在你滚动的时候发生的。正是出于这个原因,您在
cellForItemAtIndexPath:
中执行的所有操作都需要非常、非常快。嗯,你的实现显然不快

您有两个选择-实际上您可以同时使用这两个选项:

  • 准备更好的图像。使用
    png
    并按显示所需的实际大小使用它们

  • 使用惰性图像加载,以便在后台线程中加载图像,并且不会减慢滚动速度


哪个部分速度慢?第一次加载视图?滚动?滚动。我压缩了图像,现在似乎效果更好了,但我仍然觉得这是一个解决方案。什么部分比较慢?第一次加载视图?滚动?滚动。我压缩了图像,现在似乎效果更好了,但我仍然觉得这是一个解决方案。什么部分比较慢?第一次加载视图?滚动?滚动。我压缩了图像,现在似乎效果更好了,但我仍然觉得这是一个解决方案。什么部分比较慢?第一次加载视图?滚动?滚动。我压缩了图像,现在似乎效果更好了,但我仍然觉得这是一个解决方案