iOS懒加载

作者: Double丶K | 来源:发表于2016-05-16 18:22 被阅读183次


懒加载——也称为延迟加载,即在需要的时候才加载(效率低,占用内存小).所谓懒加载,写的是其get方法.

注意:如果是懒加载的话则一定要注意先判断是否已经有了,如果没有那么再去进行实例化.

每个控件的getter方法中分别负责各自的实例化处理,代码彼此之间的独立性强,松耦合.

 @property(nonatomic,strong)UILabel *firstlab;

 @property(nonatomic,strong)UILabel *lastlab;

 @property(nonatomic,strong)UIImageView *icon;

 @property(nonatomic,strong)UIButton *leftbtn;

@property(nonatomic,strong)NSArray *array;

@property(nonatomic ,assign)int i;

 -(void)change;

 @end

 @implementation YYViewController

 - (void)viewDidLoad

{

    [super viewDidLoad];

     [self change];

 }

-(void)change

 {

     [self.firstlab setText:[NSString stringWithFormat:@"%d/5",self.i+1]];     //先get再set

    self.icon.image=[UIImage imageNamed:self.array[self.i][@"name"]];

     self.lastlab.text=self.array[self.i][@"desc"];

    self.leftbtn.enabled=(self.i!=0);

     self.rightbtn.enabled=(self.i!=4);

 }

 //延迟加载

 /**1.图片的序号标签*/

 -(UILabel *)firstlab

 {

//判断是否已经有了,若没有,则进行实例化

     if (!_firstlab) {

        _firstlab=[[UILabel alloc]initWithFrame:CGRectMake(20, 10, 300, 30)];

        [_firstlab setTextAlignment:NSTextAlignmentCenter];

       [self.view addSubview:_firstlab];

    }

    return _firstlab;

}

 /**2.图片控件的延迟加载*/

 -(UIImageView *)icon

 {

    //判断是否已经有了,若没有,则进行实例化

     if (!_icon) {

        _icon=[[UIImageView alloc]initWithFrame:CGRectMake(POTOIMGX, POTOIMGY, POTOIMGW, POTOIMGH)];

         UIImage *image=[UIImage imageNamed:@"biaoqingdi"];

_icon.image=image;

[self.view addSubview:_icon];

     }

     return _icon;

 }

/**3.描述控件的延迟加载*/

-(UILabel *)lastlab

 {

//判断是否已经有了,若没有,则进行实例化

     if (!_lastlab) {

         _lastlab=[[UILabel alloc]initWithFrame:CGRectMake(20, 400, 300, 30)];

         [_lastlab setTextAlignment:NSTextAlignmentCenter];

         [self.view addSubview:_lastlab];

}

     return _lastlab;

 }

 /**4.左键按钮的延迟加载*/

 -(UIButton *)leftbtn

 {

      //判断是否已经有了,若没有,则进行实例化

     if (!_leftbtn) {

         _leftbtn=[UIButton buttonWithType:UIButtonTypeCustom];

         _leftbtn.frame=CGRectMake(0, self.view.center.y, 40, 40);

         [_leftbtn setBackgroundImage:[UIImage imageNamed:@"left_normal"] forState:UIControlStateNormal];

         [_leftbtn setBackgroundImage:[UIImage imageNamed:@"left_highlighted"] forState:UIControlStateHighlighted];

         [self.view addSubview:_leftbtn];

         [_leftbtn addTarget:self action:@selector(leftclick:) forControlEvents:UIControlEventTouchUpInside];

     }

    return _leftbtn;

相关文章

  • Swift的懒加载和只读属性的介绍

    懒加载 在 iOS 开发中,懒加载是无处不在的 懒加载的格式如下: lazy var person: Person...

  • iOS-UI-懒加载

    原文找不到了 iOS-UI-懒加载 1.懒加载基本 懒加载——也称为延迟加载,即在需要的时候才加载(效率低,占用内...

  • 2018-12-21

    iOS开发中懒加载遇到的坑 正常写一个懒加载对象 - (MAMapView*)mapView{ if(nil=...

  • iOS 数组 NSArray 遍历 懒加载总结

    iOS开发之懒加载 iOS中数组遍历的方法及比较

  • iOS开发——懒加载

    懒加载的定义 懒加载也称为延迟加载,即在需要的时候才加载(效率低,占用内存小)。iOS设备的内存有限,如果程序在启...

  • # 懒加载

    在 iOS 开发中,懒加载是无处不在的 懒加载的格式如下: 懒加载本质上是一个闭包 以上代码可以改写为以下格式 懒...

  • iOS开发之懒加载

    iOS开发之懒加载 在iOS开发中几乎经常用到懒加载技术,比如我们存放网络数据的数组,控制器的view,控件的自定...

  • iOS 懒加载

    懒加载:也称延时加载,即在对象用到的的时候才加载。其实懒加载,就是所谓的重写对象的get方法,当系统或者开发者调用...

  • iOS懒加载

    所谓的懒加载可以定义为:延时加载,即当对象需要用到的时候再去加载。其实就是所谓的重写对象的get方法,当系统或者开...

  • iOS懒加载

    iOS懒加载 简单的讲就是拖到最后一刻,万不得已了,才加载,才开始占用资源。所谓懒加载,写的就是其getter方法...

网友评论

    本文标题:iOS懒加载

    本文链接:https://www.haomeiwen.com/subject/akillttx.html