1、UIImage 的 2 种加载图片方式

(1)有缓存(图片所占用的内存会一直停留在程序中),可能会导致占用大量内存而使程序崩溃,加载少量 小图片时候使用。

+ (UIImage *)imageNamed:(NSString *)name;

name 是图片的文件名,png 图片不用加后缀名,jpg 等其他图片格式要加后缀名。
(2)无缓存(图片所占用的内存会在一些特定操作后被清除),在加载大量图片时候使用

+ (UIImage *)imageWithContentsOfFile:(NSString *)path 
- (id)initWithContentsOfFile:(NSString *)path;

path 是图片的全路径
例如:

NSBundle *bundle = [NSBundle mainBundle];
NSString *path = [bundle pathForResource:filename ofType:nil];
UIImage *image = [UIImage imageWithContentsOfFile:path];

2、设置 UIImageVeiw 圆角

self.iconView.layer.cornerRadius = 8;//圆角半径 
self.iconView.clipsToBounds = YES;//超出圆角部分都减掉

【备注】UIImageView 还可以设置高亮(被点击)图片:

myImageView.highlightedImage = ...

3、UIImageView 帧动画相关属性和方法

@property(nonatomic,copy) NSArray *animationImages; 

需要播放的序列帧图片数组(里面都是 UIImage 对象, 会按顺序显示里面的图片)

@property(nonatomic) NSTimeInterval animationDuration;

帧动画的持续时间

@property(nonatomic) NSInteger animationRepeatCount; 

帧动画的执行次数(默认是无限循环)

- (void)startAnimating;  // 开始执行帧动画
- (void)stopAnimating;   // 停止执行帧动画
- (BOOL)isAnimating;     // 是否正在执行帧动画

示例:
在UIView中加载一张图片

- (void)viewDidLoad 
{
    [super viewDidLoad];
   
    // 设置图片View
    UIImageView *imageView = [[UIImageView alloc] init];
    imageView.frame = self.view.frame;
    
    // 加载图片
    imageView.image = [UIImage imageNamed:@"myImage.jpg"];
    [self.view addSubview:imageView];
    
}

效果:

clipboard.png


Corwien
6.3k 声望1.6k 粉丝

为者常成,行者常至。