わかりました、ios7 に深刻な問題があります。ユーザーがコントロールをドラッグするコードがあり、ドラッグすると、処理された画像でインターフェイスが更新されます。これは iOS 6.1 までは非常に高速でしたが、現在は非常に低速です。
私のコードの仕組みは次のとおりです。
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
//get initial position
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
//calculates new position
applyEffects();
- (void)applyEffects {
UIGraphicsBeginImageContext();
//CGContextTranslateCTM, CGContextScaleCTM, CGContextDrawImage and stuff like that
UIImage *blendedImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
preview.image = blendedImage; //preview is a UIImageView
ログを記録した後、画面上で指を動かすたびに applyEffects が呼び出されることに気付きましたが、ビューが更新される回数は非常に少ないため、非常に遅く見えるのだと思います。
したがって、「preview.image = blendedImage;」の理由についてのアイデアはありません。もうビューを更新していませんか? 何か不足していますか?
繰り返しますが、これは iOS 7 でのみ発生します。
前もって感謝します!