UI学习第03天

  最近一周一直很忙了,白天几乎没有看iOS的的时间,这第三天的视频我嫩是用了差不多4天的时间才看完,做完,说实话真的很累,今天是周六朋友叫我出去玩,我也没去这么多的学习任务在这儿如果不学好,我真的对不起自己的这么大得投入。

  以下是第03天一些学习体会和笔记:

1、

instancetype 可以自动检查返回值的类型,非常好用。

按钮的本质:--> view view的本质UIImageView、Label


2、OC复习

*slef:在对象方法中,代表自己,即当前类的对象。

      在类方法中,代表当前类。

*构造方法以 init开头

*类方法建议以类名开头。

*NSString 类型一般用copy。

*属性的本质:get和set方法,get和set的作用是封装成员变量,成员变量也叫字段。

*方法和函数:方法-->类里面的函数(仅仅是存在的位置不一样)。

*多态:父类指针指向子类对象(里氏替换原则)。

*重写init方法规范:


- (instancetype)initWithAge:(int)age andName:(NSString *)name

{

    if (self = [super init]) {

        self.age = age;

        self.name = name;

    }

    

    return self;

}



3、写一个方法需要考虑的:

方法的功能 生成三个子控件,显示应用信息

方法的返回值

方法的参数

方法内部的代码


4、懒加载:程序第一次运行时才进行加载

//1 懒加载

- (NSArray *)appInfos

{

    if (_appInfos == nil) {

        //1.1 bundle

        NSBundle *bundle = [NSBundle mainBundle];

        //1.2 获取plist的路径

        NSString *path = [bundle pathForResource:@"app" ofType:@"plist"];

        //1.3 加载plist

        _appInfos = [NSArray arrayWithContentsOfFile:path];

    }

    return _appInfos;

}


5、方法积累:

//文字大小

nameView.font = [UIFont systemFontOfSize:15];

//文字居中

nameView.textAlignment = NSTextAlignmentCenter;

//设置按钮文字的大小

downloadView.titleLabel.font = [UIFont systemFontOfSize:15];

//给按钮注册事件

[downloadView addTarget:self action:@selector(downloadClick) forControlEvents:UIControlEventTouchUpInside];


6、字典转模型:一种设计方法,将数据抽出放到一个类里,并创建相应的成员变量,在controller里直接调用该属性即可访问成员变量。

//1.4 字典转换模型

        for (NSDictionary *dic in dicArray) {

            CZAppInfo *appInfo = [[CZAppInfo alloc] init];

            appInfo.name = dic[@"name"];

            appInfo.icon = dic[@"icon"];

            

            [tmpArray addObject:appInfo];

        }



7、封装字典转模型:提供一个类方法(或对象方法)快速初始化对象。

+ (NSArray *)appInfosList

{

    //1.1 bundle

    NSBundle *bundle = [NSBundle mainBundle];

    //1.2 获取plist的路径

    NSString *path = [bundle pathForResource:@"app" ofType:@"plist"];

    //1.3 加载plist

    NSArray *dicArray = [NSArray arrayWithContentsOfFile:path];

    

    NSMutableArray *tmpArray = [NSMutableArray array];

    //1.4 字典转换模型

    for (NSDictionary *dic in dicArray) {

        

        //调用appinfo的类方法

        CZAppInfo *appInfo = [CZAppInfo appInfoWithDic:dic];

        

        [tmpArray addObject:appInfo];

    }

    

    return tmpArray;

}


8、Xib:本质是一个XML,描述的是一个界面的一部分,本质是XML(可扩展标记语言)。

它没有scene(场景)。


9、封装自定义view: view名与XIB文件一致。它是一个简单的MVC设计模式,即Model、View、Controller这三部分组成。


10、其它笔记:

// 透明度

tipView.alpha = 0;


//圆角

tipView.layer.cornerRadius = 5;


tipView.layer.masksToBounds = YES; //剪裁超过bounds的部分

    

//动画效果

[UIView animateWithDuration:1.0 animations:^{

tipView.alpha = 0.9;

} completion:^(BOOL finished) {

        [UIView animateWithDuration:1.0 delay:3.0 options:UIViewAnimationOptionCurveLinear animations:^{

            tipView.alpha = 0;

            

        } completion:^(BOOL finished) {

            //从父view中移除

            [tipView removeFromSuperview];

            

            //

            self.superview.userInteractionEnabled = YES;

        }];


    }];


//取消和用户的交互

    self.superview.userInteractionEnabled = NO;

    sender.enabled = NO;



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值