我正在使用Photos框架和requestImageForAsset:
花费太多时间,因此它的滚动性能非常糟糕。
我尝试将PHImageRequestOptions
选项设置为:
let options: PHImageRequestOptions = PHImageRequestOptions()
options.deliveryMode = PHImageRequestOptionsDeliveryMode.FastFormat
滚动变得非常流畅(所以我知道这是唯一导致因素)但缩略图仍然模糊,因为FastFormat
投放选项,resultHandler:
将仅被调用一旦图像质量下降。
目前我正在使用以下代码(滚动效果不佳):
// Size is proper as per scale i.e(ui-width * scale, uiheight * scale)
self.imageManager?.requestImageForAsset(phAsset,
targetSize: size,
contentMode: PHImageContentMode.AspectFill,
options: nil,
resultHandler: { (resultImage, info) -> Void in
// Call completion handler.
completion(phAsset: phAsset, image: resultImage)
})
如果问题出在上述方法中,有任何想法可以改善滚动性能吗?
任何指针都将受到赞赏。
答案 0 :(得分:1)
根据Apple文档,
如果您需要将许多资产的图像数据一起加载,请使用PHCachingImageManager类通过加载您希望尽快需要的图像来“预热”缓存。例如,在使用照片资产缩略图填充集合视图时,可以在当前滚动位置之前缓存图像
public void LaunchFont(String fonts) {
Typeface myTypeface = Typeface.createFromAsset(getActivity().getAssets(), "fonts/" + fonts + ".ttf");
text_View.setTypeface(myTypeface);
view.findViewById(R.id.edtextDesigner).setVisibility(View.VISIBLE);
view.findViewById(R.id.toggleText).setVisibility(View.VISIBLE);
view.findViewById(R.id.closeFontMenu).setVisibility(View.GONE);
view.findViewById(R.id.MenuLayout).setVisibility(View.GONE);
}
您可以轻松参考apple提供的缓存帮助@Sample应用 https://developer.apple.com/library/ios/samplecode/UsingPhotosFramework/Introduction/Intro.html