سؤال

هل هناك شيء من هذا القبيل باعتبارها "على حمولة كاملة" للصور في اي فون؟

وأريد أن أكون قادرة على تدمير مؤشر 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 ليس مسار آمن، ويمكن استخدامها على موضوع الرئيسي فقط.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top