colorWithPatternImage

一般我们设置 一个view的背景  可以通过  在view上放一个imageView 来显示背景图片

这里介绍另外一种方法

可以直接通过改变view.backgroundColor的值 来达到上面的效果

self.backgroundColor=[UIColor colorWithPatternImage:[UIImage imageWithName:@"XXX"]];

这样就能达到上面  imageView的效果

但是用第二种方法在测试的时候  巨占内存   在ipad上显示一张 1024*768的图片  在模拟器器上查看内存  发现

第二中方法  占3.8mb   第一种只占用几十kb

用colorWithPatternImage设置view背景色太占内存,替代方法

之前的一个iPad项目,由于支持旋转,背景图又不一样,采用在旋转时使用下面代码设置背景色:

self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"main_landscape.jpg"]];
结果程序一启动就占很大内存,在第一代iPad上转几次就出现内存警告,退出。

今天打算优化一下,发现使用上面的代码占了6MB多内存!一旋转又多了6MB。。。
感觉是这个函数的问题,开始打算用UIImageView代替,可是旋转时,UIImageView的大小变动,会漏出底部的背景色。
最后google搜索,得到两种解决办法:
1.self.view = imageView;(如果支持触摸要加上imageView.userInteractionEnabled = YES;)
2. UImage *image = [UIImage imageNamed:@"name.png"];
     self.view.layer.contents = (id) image.CGImage;
我采用了第二个办法,哇,省了十多MB内存。

ps,由于我这里每次旋转都要设置,所以采用了imageNamed方法,如果仅调用一次,可以使用imageWithContentsOfFile

时间: 2024-10-05 11:36:57

colorWithPatternImage的相关文章

bug - colorWithPatternImage:

// 在ios5之前, 再通过以下方法设置背景时, 有闪屏bug self.view.backgroundColor = [UIColor colorWithPatternImage:<#(nonnull UIImage *)#>]; // 解决方案 self.view.layer.contents = (id)[UIColor colorWithPatternImage:[UIImage imageNamed:xxx]];

UIColor colorWithPatternImage方法

一般我们设置 一个view的背景  可以通过  在view上放一个imageView 来显示背景图片 这里介绍另外一种方法 可以直接通过改变view.backgroundColor的值 来达到上面的效果 self.backgroundColor=[UIColor colorWithPatternImage:[UIImage imageWithName:@"XXX"]]; 这样就能达到上面  imageView的效果 但是用第二种方法在测试的时候  巨占内存   在ipad上显示一张 1

uiscrollview UIView 设置背景图片 swift 不用colorWithPatternImage

colorWithPatternImage 非常占用内存,而且在swift中去掉了这个方法. sizeView.layer.contents = UIImage(named:"slect_bg")!.CGImage

手把手教你视频直播开发

#pragma mark viewDidLoad - (void)viewDidLoad { [super viewDidLoad]; self.liveRoomVC = LiveRoomVC_LiveRoomViewController; self.isTouchHomeEd = NO; NSLog(@"!!!%ld",(long)self.staruserid); [AppDelegate shareAppDelegate].isNeedReturnLiveRoom = YES;

iOS应用性能调优的25个建议和技巧

目录 我要给出的建议将分为三个不同的等级: 入门级. 中级和进阶级: 入门级(这是些你一定会经常用在你app开发中的建议) 1. 用ARC管理内存 2. 在正确的地方使用reuseIdentifier 3. 尽可能使Views透明 4. 避免庞大的XIB 5. 不要block主线程 6. 在Image Views中调整图片大小 7. 选择正确的Collection 8. 打开gzip压缩 中级(这些是你可能在一些相对复杂情况下可能用到的) 9. 重用和延迟加载Views 10. Cache, C

iOS关于UITabView和UIAlertController,UIAlertAction以及UINavigation,值修改的传递页面推送

关于UITabView和UIAlertController,UIAlertAction以及UINavigation,值修改的传递 集合嵌套集合的操作 声明 两个必须的的代理 实现部分代码 - (void)viewDidLoad { [super viewDidLoad]; // 创建一个TabView self.tabv = [[UITableView alloc] initWithFrame:self.view.frame style:UITableViewStyleGrouped]; sel

【解决方法】iOS 开发小技巧

1,Search Bar 怎样去掉背景的颜色(storyboard里只能设置background颜色,可是发现clear Color无法使用). 其实在代码里还是可以设置的,那就是删除背景view [[self.searchBar.subviews objectAtIndex:0] removeFromSuperview]; 2,NSDate: [java] view plaincopy 字母  日期或时间元素    表示     示例 G     Era   标志符     Text     

[iOS UI进阶 - 1] 自定义控件

A.关于Quiartz2D的一些细节 1.UIKit的工具已经封装了上下文引用,所以不用手动获取和渲染 1 - (void)drawRect:(CGRect)rect { 2 [[UIColor redColor] set]; 3 UIRectFill(CGRectMake(0, 0, 100, 100)); 4 } 2.多个path 1 - (void)drawRect:(CGRect)rect { 2 CGContextRef ctx = UIGraphicsGetCurrentContex

iOS每日一记之——————————iOS性能优化

写在前面 本文来自iOS Tutorial Team 的 Marcelo Fabri,他是Movile的一名 iOS 程序员.这是他的个人网站:http://www.marcelofabri.com/,你还可以在Twitter上关注@marcelofabri_. 性能对 iOS 应用的开发尤其重要,如果你的应用失去反应或者很慢,失望的用户会把他们的失望写满App Store的评论.然而由于iOS设备的限制,有时搞好性能是一件难事.开发过程中你会有很多需要注意的事项,你也很容易在做出选择时忘记考虑