zoukankan      html  css  js  c++  java
  • (三)懒加载以及一些设计规范

    八.文档注释

    /** 这是一只显示图片的猫 */

    @property (weaknonatomicIBOutlet UIImageView *tom;


    这样的好处是调用时显示注释:



    九.UIButton UIImageView区别


    1.需要监听图片点击,需要用UIButton。

    2.相同点:能显示图片。
       不同点:UIButton能同时显示两张图片。

    要显示一个有背景、文字前小图片、文字说明的按钮,只需要设定image与background,然后再设置文字即可。

    3.继承关系:
    UIButton -> UIControl -> UIView
    UIImageView -> UIView (默认不能处理事件,但是可以特殊设定)。
    凡是继承字UIControl的对象都能处理事件。

    十.应用管理app的设置与制作

    1.懒加载:重写get方法。

    @property (nonatomicstrongNSArray *apps;

    - (NSArray *)apps{

        

        if(_apps == nil){

            

            NSString *path = [[NSBundle mainBundlepathForResource:@"app.plist" ofType:nil];

            

            _apps = [NSArray arrayWithContentsOfFile:path];

            

            NSLog(@"%@",_apps);

            

        }

        

        return _apps;

        

    }

    注意文件名和拓展名可以写在一起,然后后面写nil。


    2.向View中加入组件,指针销毁后视图仍然存在,例如九宫格的添加:

        for (int index = 0; index < self.apps.count; index++){

            UIView *appView = [[UIView allocinit];

            appView.backgroundColor = [UIColor redColor];

            CGFloat appX = margin + (index % totalCol)*(margin + appW);

            CGFloat appY = 30 + (index / totalCol)*(margin + appH);

            appView.frame = CGRectMake(appX, appY, appW, appH);

            [self.view addSubview:appView];

        }


    3.设计技巧:所有组件的x,y,w,h均表示为变量,一是方便修改,二是方便后续计算(CGFloat类型)。


    4.让按钮高亮和普通显示文字一致,则只需要设置UIControlStateNormal(按钮的text称为setTitle)。


    按钮设置字体的方式:按钮内部默认有两个子控件,一个imageView,一个label。

    @property(nonatomic,readonly,retainUILabel     *titleLabel NS_AVAILABLE_IOS(3_0);

    @property(nonatomic,readonly,retainUIImageView *imageView  NS_AVAILABLE_IOS(3_0);


    btn.titleLable.text = @“xxx”;//这样是不安全的,因为系统不知道文字对应的状态,可能会在高亮时消失,不推荐,用setTitle更好。

    同理,设置按钮前面的image,使用[downloadBtn setImage: forState:]


    5.设置字体:

    downloadBtn.titleLabel.font = [UIFont systemFontOfSize:13];


    6.避免计算margin

    先让imageView填充,然后内容居中,使用contentMode属性设置。


    7.关于readonly

    一个属性readonly,它的内部成员是否readonly还要看具体成员的设置,不是则可以修改。


    8.Xcode安装插件:

    打开插件运行,然后command+q完全退出。再使用。

    例如注释插件,///触发。



  • 相关阅读:
    HDU5730 Shell Necklace
    BZOJ4883 [Lydsy2017年5月月赛]棋盘上的守卫
    Spring boot 配置文件
    org.joda.time.DateTime 日期操作
    Elasticsearch + Springboot 启动报错 java.net.ConnectException: Connection refused
    centos7 在docker下安装es Elasticsearch
    centos 7 。 docker 安装rabbitmq 以及集权搭建
    linux 安装mysql5.7.25
    安装rabbtimq CentOS 7
    docker + spring boot 打包 部署。
  • 原文地址:https://www.cnblogs.com/aiwz/p/6154250.html
Copyright © 2011-2022 走看看