ios一些知识点的总结

最近一直忙于项目,终于得空,把自己以前不是很清楚的知识点给整理一下了。

1.当用scrollView加载大量本地图片的时候,而图片又非常大的情况下,怎么处理好内存的问题?

刚开始尝试,就是让scrollView实现重用的机制,这样就会使内存消耗比较少,但是事实不是这样的,内存消耗依然非常大,能达到200M(arc模式下),这种scrollView的重用机制,如果图片是从网络请求获得的话,内存消耗非常小,这就说明重用机制是没有问题的,如果重用机制没有出现问题,那么问题出现在哪里呢?后来猜测问题,应该是出现在arc模式下,并没有把内存、缓存给清除掉,这样就会造成内存的不断累加。解决这个问题,有两种方法:

(1).使用非arc来进行内存的管理,并且在didReceiveMemoryWaring方法中,当收到内存警告的时候,对内存强制性地清除。

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
    NSLog(@"内存警告");
}

(2).对图片进行压缩,生成缩略图,这样再结合重用机制,就会使内存消耗大大降低,很多情况下,采用(2)思路就可以把问题给解决掉,用起来也比较简单。

2.使用系统的导航条的时候,如果用storyboard来创建的话,如果导航条是透明的,会造成什么问题出现?

有时候,我们会碰见坐标少了64或多了64的问题,出现这种情况是,基本上就是导航条出现了问题,比如如果用系统的导航条,而导航条的背景色是透明的话,这个时候就会出现,就会出现多了64像素的问题。另外,在使用自定义导航条的时候,也得先让系统的导航条给隐藏掉,这样才不会出现坐标的问题。

3.UIView中有个属性是autoresizingMask,该属性的作用是什么?

UIView中有个属性是autoresizingMask,该属性是用来控制控件的自适应的。

typedef NS_OPTIONS(NSUInteger, UIViewAutoresizing) {
    UIViewAutoresizingNone                 = 0,
    UIViewAutoresizingFlexibleLeftMargin   = 1 << 0,
    UIViewAutoresizingFlexibleWidth        = 1 << 1,
    UIViewAutoresizingFlexibleRightMargin  = 1 << 2,
    UIViewAutoresizingFlexibleTopMargin    = 1 << 3,
    UIViewAutoresizingFlexibleHeight       = 1 << 4,
    UIViewAutoresizingFlexibleBottomMargin = 1 << 5
};
UIViewAutoresizingNone:控件相对于父视图坐标值不变,系统默认。
<span style="font-size:14px;"></span><pre name="code" class="objc">UIViewAutoresizingFlexibleWidth:控件的宽度随着父视图的宽度按比例改变。
<span style="font-size:14px;"></span><pre name="code" class="objc">UIViewAutoresizingFlexibleHeight:与上类似

 
UIViewAutoresizingFlexibleLeftMargin:到屏幕左边的距离随着父视图的宽度按比例改变
<span style="font-size:14px;"></span><pre name="code" class="objc">UIViewAutoresizingFlexibleRightMargin  
UIViewAutoresizingFlexibleTopMargin
UIViewAutoresizingFlexibleBottomMargin:与上类似
 
 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值