ios基础知识--06

零散基础知识:

1.只要被static修饰的局部变量,只会初始化一次,在整个程序运行过程中,只有一份内存;

2.oc语法细节:不允许直接修改oc对象的结构体属性的成员,所有可以通过CGMake(),或先把属性支赋给一个值,然后通过改变赋给的那个值,在把那个值赋给属性值;

3.UIScrollView:

   1).    shouView.clipsToBounds = YES;超出的部分隐藏

   2).    scrollView:如果想禁止某个方向的滚动,那么就可以直接设置width=0或height = 0;

   3).    如果遇到UIScrollView无法滚动的解决办法:

           1>.没有设置contentSize;

           2>.scrollEnabled = NO;

           3>.没有接受到触摸事件userInteractionEnable= NO;

4.所谓模型,其实就是数据模型,专门用来存放数据的对象,用它来表示数据会更加专业

   1).    模型设置数据和取出数据都是通过它的属性,属性名如果写错了,编译器会马上报错,因此,保证了数据的正确性

   2).    使用模型访问属性时,编译器会提供一系列的提示,提高编码效率

           app.name@"Jack";

            NSString*name = app.name;

   3).    字典转模型的过程最好封装在模型内部

   4).    模型应该提供一个可以传入字典参数的构造方法

           -( instancetype)initWithDict:( NSDictionary*)dict;

           +( instancetype)xxxWithDict:( NSDictionary*)dict;

5.   instancetype 在类型表示上,跟 id 一样,可以表示任何对象类型;

     instancetype 只能用在返回值类型上,不能像 id 一样用在参数类型上;

     instancetype id 多一个好处:编译器会检测 instancetype 的真实类型;

//...//


加载xib文件:

方式1:

NSArray *objs = [[NSBoundle mainBundle]loadNibNamed:@”test” owner:nil options:nil];

[self.view addSubview:objs[1]];

 方式2:

一个对象就代表一个  文件:

UINib *nib = [UINib nibWithNibName:@”test”bundle:[NSBundle mainBundle]];

一般情况下,bundle参数nil,默认就是

UINib *nib = [UINib nibWithNibName:@”test”bundle:nil];

NSArray *objs = [nibinstantiateWithOwner:nil options:nil];

[self.view addSubview:[objs lastObject]];


注意:u通过xib\storyboard创建

-初始化时不会调用initWithFrame:方法,只会调用initWithCoder:方法
-初始化完毕后会调用awakeFromNib方法

设置监听事件常用的3种方式:

            1>通过addTarget方式,但是这种方式只能监听一些"单击事件""滚动条滚动事件",有些事件通过addTarget方式监听无效,比如"Value Changed"事件。

            注意:   addtarget 代理有个条件:必须继承UIControl


            2>通过代理, 文本框的代理协议"UITextFieldDelegate"。演示:textFieldShouldBeginEditing方法。

       /** 演示代码:
             
             // 为某个文本框设置代理
             - (void)viewDidLoad {
                 [super viewDidLoad];
                 // 设置文本框代理为当前控制器。
                 self.txtLoginId.delegate = self;
             }
             
             // 让当前控制器遵守UITextFieldDelegate协议, 并且实现- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField方法, 返回YES
             - (BOOL)textFieldShouldBeginEditing:(UITextField *)textField
             {
                return YES;
             }
             
             */


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值