2
私はimageview
を含む項目にCIFiltersを適用しています。したがって、生成される約12個のアイテムがありますが、コレクションビューでアイテムをスクロールすると、新しいアイテムが生成されたときに少し不具合があります。 この遅延なしでUICollectionView
の項目を設定する方法はありますか?UICollectionViewでのパフォーマンスの問題
現在、cellForItemAtIndexPath
代理人方法UICollectionView
でフィルタを適用しています。
// filters array
let arrayOfCIFilters = ["CIBumpDistortionLinear","CIPixellate","CISepiaTone","CITwirlDistortion","CIUnsharpMask","CIVignette","CIPhotoEffectNoir","CIColorInvert","CIMotionBlur","CIColorClamp","CIToneCurve","CIColorPosterize","CICircularScreen"]
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCellWithReuseIdentifier("c1", forIndexPath: indexPath) as! filterImagesCollectionViewCell
let ciImage = CIImage(image:originalImage)
ciFilter = CIFilter(name: arrayOfCIFilters[indexPath.row])!
ciFilter.setValue(ciImage, forKey: kCIInputImageKey)
cell.imageVIew.image = UIImage(CGImage: ciContext.createCGImage(ciFilter.outputImage!, fromRect: ciFilter.outputImage!.extent))
cell.nameLabel.text = arrayOfCIFilters[indexPath.row]
return cell
}
init()メソッドで画像の配列を作成すると、フィルタリングする画像が1つあるため、配列には多くの画像が保持されません。 – ankit
はい、それはそれを保持します。しかし、毎回イメージを作成するよりも優れています。これは、親コントローラがクリアされたときにクリア/ガベージコレクトされます。たとえば、UIViewControllerにUICollectionViewを表示している場合、UIViewControllerがクリアされたときに変数がクリアされたUICollectionViewがクリアされます。 –
これは間違いなく助かります! – ankit