美文网首页
iOS UIImage 加载、拉伸

iOS UIImage 加载、拉伸

作者: 风轻鱼蛋 | 来源:发表于2017-08-21 14:25 被阅读0次

    1、图片加载

    imageNamed

          UIImage *image = [UIImage imageNamed:@"imageName"];
    

    在application bundle的顶层文件夹寻找相应名字的图象,找到后系统会把图像Cache到内存(对于同一个图像系统只会把它Cache到内存一次)。,如果再次要用同一图像,图像将从内部缓存而不是从资源中加载。

    imageNamed的优点是当加载时会缓存图片。所以当图片会频繁的使用时,那么用imageNamed的方法会比较好。

    但如果图像比较大,或者图像比较多,用这种方式会消耗很大的内存。

    imageWithContentsOfFile

          NSString *path = [[NSBundle mainBundle]pathForResource:@"imageName" ofType:@"png"];
           UIImage *image = [UIImage imageWithContentsOfFile:path];
    

    仅加载图片,图像数据不会缓存。因此对于较大的图片以及使用情况较少时,那就可以用该方法,降低内存消耗。

    imageWithData

          NSData *imageData = [NSData dataWithContentsOfFile:path];
          UIImage *image = [UIImage imageWithData:imageData];
    

    不为图像提供缓存,从二进制数据创建,利用NSData方式加载时,图像会被系统以数据方式加载到程序。当你不需要重用该图像,或者你需要将图像以数据方式存储到数据库,又或者你要通过网络下载一个很大的图像时,请尽量使用imageWithData的方式加载图像。

    2、图片拉伸

         //方式一
        [image resizableImageWithCapInsets:UIEdgeInsetsMake(imageHeight*0.5, imageWidth*0.5, imageHeight*0.5-1, imageWidth*0.5-1) resizingMode:UIImageResizingModeTile]
        /*
         UIImageResizingModeTile,   //平铺
         UIImageResizingModeStretch,//拉伸
         */
        
        //方式二
        [image stretchableImageWithLeftCapWidth:imageWidth*0.5 topCapHeight:imageHeight*0.5];
    

    相关文章

      网友评论

          本文标题:iOS UIImage 加载、拉伸

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