uiimage فون oncomplete
-
20-09-2019 - |
سؤال
هل هناك شيء من هذا القبيل باعتبارها "على حمولة كاملة" للصور في اي فون؟
وأريد أن أكون قادرة على تدمير مؤشر UIActivity مرة واحدة ويتم تحميل الصورة.
ما أفضل الممارسات العامة للقيام بذلك؟
المحلول
إذا كنت تريد ببساطة لاقالة UIActivityIndicatorView
بعد أن تم تحميلها على UIImage
وعرضها بشكل صحيح في UIImageView
، يمكنك محاولة ما يلي:
- (void)loadImageAtPath:(NSString*)path
{
// show the indicator
[_myIndicatorView startAnimating];
// give UIKit a chance to setup and draw the view hierarchy:
[self performSelector:@selector(_loadImageAtPath:)
withObject:path
afterDelay:0];
}
- (void)_loadImageAtPath:(NSString*)path
{
// load the image
_myImageView.image = [UIImage imageWithContentsOfFile:path];
// force the image to load and decompress now
_myImageView.image.CGImage
// image is ready, so we can remove the indicator view
[_myIndicatorView removeFromSuperview];
}
وأنا يجب أن أعترف، لم أكن اختبار التعليمات البرمجية أعلاه. يرجى ترك تعليق إذا كان يعمل.
نصائح أخرى
وUIImage
ديه API متزامن. وهذا يعني أنه عند إنشاء (أو رسم) لUIImage
، تم تحميله وضغط. هذا أيضا يعني أن استدعاء الأسلوب إلى خلق (أو رسم) لUIImage
يستطيع ان يصد لطالما المستغرق لتحميل تلك الصورة.
إذا كنت تريد أن تفعل أشياء أخرى أثناء تحميل صورة، لديك لتحميل الصورة على موضوع الخلفية، وهو أمر ممكن باستخدام API الأساسية الرسومات C. UIImage
ليس مسار آمن، ويمكن استخدامها على موضوع الرئيسي فقط.