UIImageView详解

声明:iOS开发小白程序员一枚,正在新手上路级别,行文中如有错误,还望各位批评指正,谢谢^^


UIImageView创建的几种方式

- (void)createUIImageView
{
    //创建UIImageView
    UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, 100)];
    
    //设置普通状态下的图片
    imageView.image = [UIImage imageNamed:@"01"];
    
    //设置高亮状态下的图片
    imageView.highlightedImage = [UIImage imageNamed:@"02"];
    
    //将视图添加到视图上
    [self.view addSubview:imageView];
}
- (void)createUIImageView
{
    //创建UIImageView
    UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"03"] highlightedImage:[UIImage imageNamed:@"04"]];
    
    //设置位置
    imageView.frame = CGRectMake(0, 120, 320, 100);
    
    //将视图添加到视图上
    [self.view addSubview:imageView];
}
- (void)createUIImageView
{
    //创建UIImageView
    UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 240, 320, 100)];
    
    //沙盒中图片文件的路径
    NSString *filePath = [[NSBundle mainBundle] pathForResource:@"05@2x" ofType:@"png"];
    
    //设置显示沙盒中图片
    imageView.image = [UIImage imageWithContentsOfFile:filePath];
    
    //将视图添加到视图上
    [self.view addSubview:imageView];
}
- (void)createUIImageView
{
    //创建UIImageView
    UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 240, 320, 100)];
    
    //沙盒中图片文件的路径
    NSString *filePath = [[NSBundle mainBundle] pathForResource:@"06@2x" ofType:@"png"];
    
    //将图片转为二进制数据形式
    NSData *data = [NSData dataWithContentsOfFile:filePath];
    
    //设置显示二进制数据形式的图片
    imageView.image = [UIImage imageWithData:data];
    
    //将视图添加到视图上
    [self.view addSubview:imageView];
}

备注说明:

1.使用imageNamed方法加载图片,会将图片直接Cache到内存中来,对内存的消耗比较大,但同一个图片只会加载到内存中一次,这对图片需要重复利用来说又是一大优势

2.利用NSData方法加载图片,图片会被系统以数据方式加载到程序中,当你不需要重用该图片,或者你需要将图片以数据方式存储到数据库,又或者你要通过网络下载一个很大的图片时,尽量使用imageWithData的方式加载图片。


UIImageView几个属性的设置

- (void)setProperty
{
    UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"01"] highlightedImage:[UIImage imageNamed:@"02"]];
    imageView.frame = CGRectMake(0, 0, 320, 100);
    [self.view addSubview:imageView];
    
    imageView.highlighted = YES; //是否高亮,默认NO
    
    imageView.userInteractionEnabled = YES; //是否开启用户交互(默认UILabel和UIImageview都是NO,则加在该控件上边的所有其他控件也都转为用户触摸关闭模式)
    
    imageView.contentMode = UIViewContentModeCenter; //设置图片的显示方式为保持比例不缩放居中显示,默认图片会被拉伸/压缩成与imageView相同的大小

    imageView.contentMode = UIViewContentModeScaleAspectFill; //设置图片的显示方式为保持比例缩放居中显示,默认图片会被拉伸/压缩成与imageView相同的大小

    imageView.clipsToBounds  = YES; //设置图片的显示方式后,将多出来的部分截掉
    
    [imageView sizeToFit]; //将imageView尺寸调整为与内容图片相同
    
    imageView.transform = CGAffineTransformMakeScale(0.6, 0.6); //缩放,参数为宽高缩放比例
    imageView.transform = CGAffineTransformMakeRotation(M_PI*90/180.0); //顺时针旋转,参数为弧度,可以宏定义
    imageView.transform = CGAffineTransformMakeTranslation(160, 100); //向x和y方向移动多少,不是移动到多少
}

UIImageView图片轮播动画,能用代码解决的问题尽量少用图片,不建议使用
- (void)imageAnimation
{
    UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, 100)];
    [self.view addSubview:imageView];
    
    imageView.animationImages = @[[UIImage imageNamed:@"01"],[UIImage imageNamed:@"02"],[UIImage imageNamed:@"03"],[UIImage imageNamed:@"04"],[UIImage imageNamed:@"05"],[UIImage imageNamed:@"06"]]; //动画素材图片数组
    imageView.animationDuration = 3; //设定所有的图片在多少秒内播放完毕
    imageView.animationRepeatCount = 3; //重复播放多少遍,0表示无数遍
    [imageView startAnimating]; //开始播放
}
备注说明: 图片轮播只在非高亮状态下可以使用


demo下载地址 点击这里下载demo

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值