控件参数的选择

在控制器的类扩展里面 咱们会通常定义控件

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
时间: 2024-12-26 06:14:10

控件参数的选择的相关文章

C# winform窗体简单保存界面控件参数到xml

原文:C# winform窗体简单保存界面控件参数到xml 引用网上的 XMLHelper 地址 :https://www.cnblogs.com/chnboy/archive/2009/04/02/1427652.html 稍做修改 using System; using System.Linq; using System.Xml; namespace FormTest { /// <summary> /// XMLHelper XML文档操作管理器 /// </summary>

FormView的插入模板中的DropDownList控件参数

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DT

CheckBoxList控件获取多选择,需要遍历

CheckBoxList控件获取多选择,需要遍历,环境:vs2008 在页面上添加CheckBoxList控件,输入项值 a,b,c,d.然后添加按钮 Button2确定,如何获取CheckBoxList控件多选择呢? protected void Button2_Click(object sender, EventArgs e)    {        string ChbSelected = "";        for (int i = 0; i < CheckBoxLis

bootstrap-表单控件——下拉选择框select元素

1.运行效果如图所示 2.实现代码如下 <!DOCTYPE html> <html> <head>     <meta charset="utf-8">     <meta http-equiv="X-UA-Compatible" content="IE=edge">     <title>表单控件--下拉选择框select元</title>     <!-

DropDrowList控件添加“请选择” 新写法

this.DropDrowListNews.Items.Insert(0 ,new ListItem("请选择","0")); 写法说明: this.DropDrowListNews.Items 当前控件集合.Insert(插入) (“将信息插入第几个下标” ,  创建一个结合 new ListItem(“插入vlaue”,"0")注意格式:new ListItem(string Text,string value)  ;

WinForm开发中针对TreeView控件改变当前选择节点的字体与颜色

本文转载:http://www.cnblogs.com/umplatform/archive/2012/08/29/2660240.html 在B/S开发中,对TreeView控件要改变当前选中节点的颜色比较方便,其有相应的SelectedNodeChanged事件进行控制,但对于WinForm则没有这样方便.申明一下,我在这儿所说的改变当前节点的字体与颜色,主要是在WinForm中的TreeView控件,当前选中节点后,其失去鼠标焦点后节点的字体与颜色失去了选中状态,层级一多,我们就不知道当前

Windows Phone 8.1 新特性 - 控件之列表选择控件

本篇我们来介绍Windows Phone 8.1 新特性中的列表选择控件. 在Windows Phone 8 时代,大家都会使用 LongListSelector 来实现列表选择控件,对数据进行分组显示.比如通讯录中,按照名字首字母进行分组,点击分组标题后跳转到该标题对应的分组. 而Windows Phone 8.1 中会利用 ListView 和 SemanticZoom 来实现,下面我们来看看实现过程. 首先我们来认识一下ListView 和 SemanticZoom: ListView 从

使ListView控件中的选择项高亮显示

实现效果: 知识运用: ListView控件的SelectedItems属性 //获取在ListView控件中被选中数据项的集合 public ListView.SelectedListViewItemCollection SelectedItems{get;} 和ListViewItem数据项的BackColor属性 //获取或设置该数据项的背景色 public Color BackColor{get;set;} 实现代码: private void select_flash_Load(obj

Flex自定义组件开发之日周月日期选择日历控件

原文:Flex自定义组件开发之日周月日期选择日历控件 使用过DateField的我们都知道,DateField 控件是用于显示日期的文本字段,字段右侧带有日历图标.当用户在控件边框内的任一位置单击时,将弹出一个 DateChooser 控件,显示当月的所有日期.如果未选择日期,则该文本字段为空白,并且 DateChooser 控件中将显示当前日期的月份.当 DateChooser 控件处于打开状态时,用户可以在各个月份和年份之间滚动,并选择某个日期.选择日期后,DateChooser 控件关闭,