そのため、SwipeView ライブラリ ( https://github.com/nicklockwood/SwipeView ) を使用して、iOS8 の Photos フレームワークを使用して画像を表示しています。
ただし、requestImageForAsset を呼び出すと、2 つの結果、サムネイル サイズ、および必要な大きいサイズが得られることに気付きました。ただし、大きな画像は返されるまでにロードされないため(非同期と呼ばれます)、小さな画像が返されます。
このコードはもっと理にかなっているかもしれません。
func swipeView(swipeView: SwipeView!, viewForItemAtIndex index: Int, reusingView view: UIView!) -> UIView! {
let asset: PHAsset = self.photosAsset[index] as PHAsset
var imageView: UIImageView!
let screenSize: CGSize = UIScreen.mainScreen().bounds.size
let targetSize = CGSizeMake(screenSize.width, screenSize.height)
var options = PHImageRequestOptions()
// options.deliveryMode = PHImageRequestOptionsDeliveryMode.Opportunistic
options.resizeMode = PHImageRequestOptionsResizeMode.Exact
PHImageManager.defaultManager().requestImageForAsset(asset, targetSize: targetSize, contentMode: .AspectFill, options: options, resultHandler: {(result, info)in
println("huhuhuh")
println(result.size)
println(info)
imageView = UIImageView(image: result)
})
println("setting view)
return imageView
}
ログ出力は次のとおりです。
Enteredhuhuhuh
(33.5,60.0)
SETTING VIEW
huhuhuh
(320.0,568.0)
ご覧のとおり、大きな画像が受信される前に画像ビューが返されます。サムネが表示されないように、この大きな画像を返すにはどうすればよいですか?
ありがとう。