零散基础知识:
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.所谓模型,其实就是数据模型,专门用来存放数据的对象,用它来表示数据会更加专业
app.name= @"Jack";
NSString*name = app.name;
加载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]];
设置监听事件常用的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;
}
*/