您的位置:首页 > 移动开发 > IOS开发

ios基础知识--06

2016-06-06 13:13 357 查看
[b]零散基础知识:[/b]
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;
}

*/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: