博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
控件参数的选择
阅读量:4349 次
发布时间:2019-06-07

本文共 2214 字,大约阅读时间需要 7 分钟。

在控制器的类扩展里面 咱们会通常定义控件1.和stroyBoard上面关联 这时候用weak去修饰因为当咱们从storyBoard移除时就不会再有强引用,会自己释放2.为了进行赋值   用weak 去修饰当咱们从一个作用域到另一个作用域时,必须要通过在类扩展里面进行一次声明属性,通过赋值,进行作用域的跳转3.控件进行懒加载 要用strong当控件不一定被创建的时候,如果用也是频繁的使用时 比如:#pragma mark - 重写didSelectRow.. 这个方法- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{        // 取消默认选中的状态    [tableView deselectRowAtIndexPath:indexPath animated:YES];        // 选中这个cell 会产生一些别的事件,重写了 覆盖了父类的方法    if (indexPath.section==0) {                return;    }    // 根据索引值去返回对应的cell    BFSettingsCell *cell= [tableView cellForRowAtIndexPath:indexPath];        [self.view addSubview: self.textField];            [self.textField becomeFirstResponder];        self.selectCell=cell;    }#pragma  mark - 控件的懒加载- (UIDatePicker *)datePicker{        if (_datePicker==nil) {                _datePicker=[[UIDatePicker alloc]init];                // 显示模式        _datePicker.datePickerMode=UIDatePickerModeTime;                _datePicker.locale = [NSLocale localeWithLocaleIdentifier:@"zh-Hans"];    }    return _datePicker;}- (UITextField *)textField{        if (_textField==nil) {                _textField=[[UITextField alloc]init];                _textField.inputView=self.datePicker;                _textField.inputAccessoryView=self.tool;    }    return _textField;}- (UIToolbar *)tool{        if (_tool==nil) {                _tool=[[UIToolbar alloc]init];                // 这个工具条咱们一般只需要去设置高度就可以了        _tool.height=44;                UIBarButtonItem *cancle=[[UIBarButtonItem alloc]initWithTitle:@"取消" style:UIBarButtonItemStylePlain target:self action:@selector(cancleBtnClick)];                UIBarButtonItem *done=[[UIBarButtonItem alloc]initWithTitle:@"确定" style:UIBarButtonItemStylePlain target:self action:@selector(doneBtnClick)];        UIBarButtonItem *flexSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];                _tool.items=@[cancle,flexSpace,done];                    }    return _tool;}就是不在事件中去创建,会消耗性能,降低效率,这时候就要去用到控件懒加载,在用的时候去创建,必须要用strong 若是weak 说不通4.系统的view 也是进行懒加载的,设置数据不要通过set方法,要在viewDidload方法中,当控制器加载完成后,不然会出现bug

 

转载于:https://www.cnblogs.com/zhubaofeng/p/5222161.html

你可能感兴趣的文章
String 的intern() 方法说明
查看>>
java中Token验证
查看>>
javascript date部分
查看>>
防止被坑
查看>>
IC卡的逻辑卡号和市民卡卡号
查看>>
netBeans删除自动生成的函数(有代码删除不了的问题)
查看>>
virtualbox中centos系统配置nat+host only上网
查看>>
Hadoop的运行痕迹
查看>>
caioj1495: [视频]基于连通性状态压缩的动态规划问题:Formula 2
查看>>
2014025680(22)《嵌入式系统程序设计》第三、四周学习总结
查看>>
什么样的人适合编程
查看>>
W5500初始化过程
查看>>
开关电源9v,1A
查看>>
下载360doc.com里的文章
查看>>
【转】globk和glorg中使用的apr文件
查看>>
导航,头部,CSS基础
查看>>
PostMessage 解析
查看>>
Java语法基础(一)
查看>>
关于String StringBuffer 和 StringBulider
查看>>
as3 sort
查看>>