iOS开发UI高级 懒加载
来源:互联网 发布:深入浅出数据分析 微盘 编辑:程序博客网 时间:2024/05/29 18:35
懒加载核心:在get方法里面进行加载,当用到时再加载而且只加载一次;
懒加载的好处:
1、就算该数据被销毁,只要程序有需要用到时,还是可以加载出来
2、使用懒加载代码可读性更高
3、对象和对象之间的独立性更强
注意:执行懒加载之前一定要先判断是否已经有了,如果没有再去进行实例化
<span style="font-size:14px;">#import "ViewController.h"@interface ViewController ()@property(nonatomic,strong)UILabel *titleLable;@property(nonatomic,strong)UIButton *loginButton;@property(nonatomic,strong)UIImageView *myImageV;@property(nonatomic,strong)NSArray *array;@property(nonatomic,assign)NSUInteger index;@end@implementation ViewController- (void)viewDidLoad { [super viewDidLoad]; [self setAttributes]; }// 对属性的具体设置-(void)setAttributes{ // 初始化下标值为1 self.index = 0; // 设置图片 [self.myImageV setImage:[UIImage imageNamed:@"1"]]; // 设置label的标题和标题颜色 self.titleLable.text = @"我是标题label"; self.titleLable.textColor = [UIColor cyanColor]; // 设置切换按钮的标题和背景颜色 [self.loginButton setTitle:@"切换图片" forState:UIControlStateNormal]; self.loginButton.backgroundColor = [UIColor orangeColor]; // 切换按钮的响应事件 [self.loginButton addTarget:self action:@selector(buttonAction:) forControlEvents:UIControlEventTouchUpInside]; // 设置数组的图片数据 self.array = @[@"1",@"2",@"3",@"4",@"5",@"6",@"7"]; }//@synthesize的作用是_myImageV相当于myImageV@synthesize myImageV = _myImageV;@synthesize array = _array;// UILabel的懒加载,只调用一次-(UILabel *)titleLable{ // 先判断再执行 if (_titleLable == nil) { _titleLable = [[UILabel alloc] initWithFrame:CGRectMake(20, 20, 200, 40)]; [self.view addSubview:_titleLable]; } return _titleLable;}// UIButton的懒加载,只调用一次-(UIButton *)loginButton{ // 先判断再执行 if (_loginButton == nil) { _loginButton = [UIButton buttonWithType:UIButtonTypeCustom]; _loginButton.frame = CGRectMake(0, 0, 200, 30); _loginButton.center = CGPointMake(self.view.bounds.size.width*0.5, self.view.bounds.size.height*0.5); [self.view addSubview:_loginButton]; } return _loginButton;}// UIImageView的懒加载,只调用一次-(UIImageView *)myImageV{ // 先判断 if (_myImageV == nil) { _myImageV = [[UIImageView alloc] initWithFrame:CGRectMake(60, 50, 300, 300)]; [self.view addSubview:_myImageV]; } return _myImageV;}//NSArray的懒加载,只加载一次-(NSArray *)array{ // 先判断 if (_array == nil) { _array = [NSArray array]; } return _array;}#pragma mark - 切换按钮的响应事件-(void)buttonAction:(UIButton *)button { self.index++; // 如果切换到最后一张图片,返回第一张 if (self.index > 6) { self.index = 0; } // 重新设置self.myImageV,实现图片切换 [self.myImageV setImage:[UIImage imageNamed:self.array[self.index]]]; }- (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated.}@end</span>
0 0
- iOS开发UI高级 懒加载
- iOS开发 UI篇 — 懒加载
- iOS开发UI篇—懒加载
- iOS开发UI篇—懒加载
- iOS开发UI篇—懒加载
- iOS开发UI篇—懒加载
- iOS开发UI篇—懒加载
- iOS开发UI篇—懒加载
- iOS开发UI篇—懒加载
- iOS开发UI篇—懒加载
- iOS开发UI篇—懒加载
- ios开发之UI基础--懒加载
- iOS开发UI篇—懒加载
- iOS开发UI篇—懒加载
- iOS开发UI篇-懒加载
- iOS开发UI篇—懒加载
- iOS开发UI篇—懒加载
- iOS开发UI篇—懒加载
- BZOJ1486: [HNOI2009]最小圈 分数规划
- 企业知识管理之“传帮带”
- Service与Thread区别
- PullToRefresh下拉刷新和上拉加载
- 详解spring 每个jar的作用
- iOS开发UI高级 懒加载
- nodejs中的模块
- HDU5865 Stone game
- 极光推送企业开发系列之自定义消息
- Android OpenCV实现图片叠加,水印
- c++ 注册回调函数研究
- 小飞鱼老师-通达OA专业二次开发培训网络直播互动课程(图文)
- kaggle实例学习-Titanic(3)
- java设计模式之六