本文分析对比了各种更改UIView背景的方法。当然,背景是根据一个图片来的(非纯色)。
一.加一个uiimageview在uiview上面
UIImageView* imageView = [[UIImageView alloc] initWithFrame:view.bounds]; imageView.image = [[UIImage imageNamed:@"name.png"] stretchableImageWithLeftCapWidth:left topCapHeight:top]; [view addSubview:imageView];
这种方式,如果原始图片大小不够(小于view的大小),可以拉伸,在view释放后也没有什么内存保留。
二.通过图片来生成UIColor设置view的backgroundColor
1.imageNamed方式
view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"name.png"]];
2.contentOfFile方式
NSString* path = [[NSBundle mainBundle] pathForResource:@"name" ofType:@"png"]; view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageWithContentsOfFile:path];
这两种方式都会在生成color时占用大量的内存(原始图片的n倍,这个n可能会达到几千的程度)。而且如果图片大小不够,就会按照原始大小一个一个u画 过去,也就是不会自动拉伸。1和2的区别在于,view释放后,1中的color并不会跟着释放,而是一直存在于内存中(当然,再次根据这个图片生成 color时并不会再次申请内存了),而2中的color就会随着view的释放而释放。
三.quartzCore方式
UIImage *image = [UIImage imageNamed:@"name.png"]; view.layer.contents = (id) image.CGImage; // 如果需要背景透明加上下面这句 view.layer.backgroundColor = [UIColor clearColor].CGColor;
这种方式会自动拉伸图片,而且没有额外内存占用。
综上,推荐第三种方式来根据图片设置背景色。
相关推荐
1、将UIView 保存为图片,按照给定的scale 2、stackoverflow参照 3、保存的图片为依据scale,亲测
ios中关于uiview
一句代码设置UIView及其子类的badgeValue,默认右上角显示 cocoaChina 上传代码比较麻烦,如果有什么问题或者添加什么功能,欢迎大家去我简书留言http://www.jianshu.com/p/497b33250ec1 喜欢的话可以关注我,...
在UIView对象中,基于简单属性的框架属性设置 uiview定位收费 UIView Positioning 是一个快速扩展,它提供简单的shorthand 方法,以方便的方式定义任何UIView对象的框架属性( 宽度,高度,x,y ),以及额外的属性和...
简单的把UIView转化为UIImage,大家可以看下。
UIView 动画 UIView动画
在点击按钮的时候,使得uiview从开始...在这个过程中,uiview的背景色从黑色,到达特定位置变为红色,移动回原位置的时候又变成黑色,在这个颜色的变化当中是缓慢变化的,在移动过程中,uiview的大小也随着移动而变化。
基于UIView扩展的类目,用于设置上下左右圆角,可设置单边圆角,也可设置为圆形 github地址:https://github.com/LQQZYY/UIViewCornerDemo 喜欢的话就给颗星支持一下,感谢!
一个UIView子类,实现图片手动切割组件,自动切割选取部分的图片
UIView+Extension 对view的一个扩展
为UIView添加圆角扩展
使用拓展与runtime,为UIView添加手势事件
UIView AutoLayout ,UIView AutoLayout 是 UIView 的分类,实现了自动布局限制的简单接口。 T...
将相机层显示为任何UIView的背景_Swift_Ruby_下载.zip
文章简介:http://www.jianshu.com/p/f18eb84e213f 最新代码地址:https://github.com/liuxinixn/LXViewShadowPath
详细讲解UIView的生命循环周期,对开发者有更好的启发作用,深层次了解程序运行的流程。
主要介绍了IOS设置UIView的边框为圆角的相关资料,需要的朋友可以参考下
+ (UIView *_Nullable)az_gradientViewWithColors:(NSArray*> *_Nullable)colors locations:(NSArray*> *_Nullable)locations startPoint:(CGPoint)startPoint endPoint:(CGPoint)endPoint; - (void)az_...
RKNotificationHub:为任何UIView添加一个通知角标
已封装好的实现渐变的UIView,只需传入渐变开始值和结束值就可直接使用。有四种渐变方向可选