美文网首页
多个imageNamed:方法导致UI加载卡顿解决方案:

多个imageNamed:方法导致UI加载卡顿解决方案:

作者: 岁月如歌的季节 | 来源:发表于2019-01-24 11:19 被阅读5次

使用场景:

当表情键盘使用for循环借助UI控件imageNamed:方法赋值图片的时候界面滑动初次加载时候出现卡顿

表情键盘

解决方案:

- (void)decodedImageWithImageName:(NSString *)imageName block:(void(^)(UIImage *image))block {
    dispatch_async(dispatch_get_global_queue(0, 0), ^{
        @autoreleasepool{
            UIImage *image = [[UIImage imageNamed:imageName] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
            image = [UIImage decodedImageWithImage:image];
            dispatch_async(dispatch_get_main_queue(), ^{
                if(block) {
                  block(image);
                }  
              
            });
        }
    });
}

其中decodedImageWithImage:SDWebImage的代码,需要在响应文档的.m中#import "SDWebImageDecoder.h"

使用案例:

 for (int i = 0; i < faceData.count; i++) {
        FaceModel *fm = faceData[i];
        FaceButton *btn = self.buttons[i];
        btn.hidden = NO;
        //        [btn setImage:[UIImage imageNamed:fm.faceIcon] forState:UIControlStateNormal];
        [self decodedImageWithImageName:fm.faceIcon block:^(UIImage *image) {
            [btn setImage:image forState:UIControlStateNormal];
        }];
        btn.faceTitle = fm.faceTitle;
    }

相关文章

  • 多个imageNamed:方法导致UI加载卡顿解决方案:

    使用场景: 当表情键盘使用for循环借助UI控件imageNamed:方法赋值图片的时候界面滑动初次加载时候出现卡...

  • Runloop 之 性能优化

    案例:tableView的Cell中有多个ImageView,同时加载大图,导致UI卡顿。解决思路:使用Runlo...

  • 图片加载方式

    加载图片的方式: 方法一:imageNamed: UIImageView *imageView = [[UI...

  • JavaScript 函数的去抖和节流(debounce &am

    我们经常遇到由于事件频繁的调用方法,因而导致频繁操作 DOM、加载资源等大量的计算,从而导致 UI 卡顿甚至是浏览...

  • UITableView多图下载

    UITableViewCell加载图片的问题: UI不流畅 ---------> 在主线程下载图片,导致卡顿,需要...

  • Ui卡顿及内存管理

    UI 卡顿原因分析 1 人为在UI线程中做轻微耗时操作,导致UI线程卡顿。 2 布局Layout 过于复杂,无法在...

  • UI卡顿

    一.UI卡顿原理 60fps->16ms:gc时其他线程都不执行,大量gc会导致卡顿 overdraw 二.UI卡...

  • 性能优化

    问题:setImageResource()造成卡顿和oom解决方案:使用图片加载框架Glide加载图片

  • UI卡顿现象

    UI卡顿原因 人为在UI线程做轻微的耗时操作,导致UI线程卡顿 layout布局过于复杂,无法在16ms完成渲染 ...

  • IOS - 图片加载

    一、加载图片的几种方法 1.用imageNamed方法 利用它可以方便加载资源图片。用imageNamed的方式加...

网友评论

      本文标题:多个imageNamed:方法导致UI加载卡顿解决方案:

      本文链接:https://www.haomeiwen.com/subject/sdtyjqtx.html