zoukankan      html  css  js  c++  java
  • 用colorWithPatternImage设置view背景色太占内存,替代方法

    用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

  • 相关阅读:
    LeetCode 914. 卡牌分组
    LeetCode 999. 车的可用捕获量
    LeetCode 892. 三维形体的表面积
    21航电5E
    min25筛 学习笔记
    牛客多校6G
    2021航电多校3
    2021牛客多校H
    [模版] 快速傅里叶变换
    2021牛客多校第五场
  • 原文地址:https://www.cnblogs.com/xiaowai/p/3416911.html
Copyright © 2011-2022 走看看