打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
更改UIView的背景
    周末在家没事情,看看别人的博客,学到不少东西
下面来说一下各种更改UIView背景的方法,当然这里的背景色不是纯色,这里主要说的是图片
1:加一个UIImageView在UIView上面

UIImage *image=[UIImage imageWithContentsOfFile:[[NSBundle mainBundle]pathForResource:@"kanmei" ofType:@"jpg"]];

    UIImageView *imageView=[[UIImageView alloc] initWithImage:image];

    [view addSubview:imageView];

    [imageView release];

这种方式,如果原始图片大小不够,小于view的大小,可以拉伸,在view释放后也没有什么内存保留。

2:通过图片来生成UIColor设置view的backgroundColor

(1)imageNamed方式

view.backgroundColor=[UIColor colorWithPatternImage:[UIImageimageNamed:@"kanmei.jpg"]];

(2)contentOfFile方式

 

 [UIColor colorWithPatternImage:[UIImage imageWithContentsOfFile:[[NSBundle mainBundle]pathForResource:@"kanmei" ofType:@"jpg"]]];

这两种方式都会生成color时占用大量的内存,可能会是原始图片大小的好几倍,还有一个缺点就是这两种方法不会自动拉伸,如果图片大小不够,就会按照原始图片大小一个一个画过去

这两种方式的区别在于:

1:view释放后,1中的color并不会跟着释放,而是一直存在于内存中,不过下次根据这个图片生成color时并不会再次申请内存,而2中的color就会随着view的释放而释放

2:imageNamed读取图片速度比较快

3:通过QuartzCore 方式

 

UIImage*image = [UIImage imageWithContentsOfFile:[[NSBundlemainBundle]pathForResource:@"kanmei" ofType:@"jpg"]]; 

   view.layer.contents =(id) image.CGImage

   // 如果需要背景透明加上下面这句

   view.layer.backgroundColor = [UIColor clearColor].CGColor;


这种方式会自动拉伸图片,并且没有额外的内存占用

所以推荐第三种来根据图片设置背景颜色。

http://www.cnblogs.com/v2m_/archive/2012/07/11/2585547.html

参考:

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
iOS——UIView背景图片设置
IOS Layer的使用(阴影)
轻松实现标签视图切换效果
UISearchBar--改变内部输入框的背景颜色
IOS UIImage 内存细节
Ipad开发课程-Charpter3 代码实现窗口 ? 疯狂的老九
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服