1、UIButton *btn = [UIButton buttinWithType:UIButtonTypeContactAdd];
\\加号按钮
2、[btn removeTarget:....]
//删除监听方法
3、
a>设置控件的状态
@property(nonatomic, getter = isEnabled) BOOL enabled;//启用,禁用
@property(nonatomic, getter = isSelected) BOOL selected;//选中,不选中
@property(nonatomic, getter = isHighlighted) BOOL highlighted;//高亮或者不高亮
b>设置控件内容布局
垂直居中方向
@property(nonatomic) UIControlCoutentVerticalAlignment coutentVerticalAlignment;
水平居中方向
@property(nonatomic) UIControlCoutentHorizontalAlignment coutentHorizontalAlignment;
c>添加/删除监听方法
-(void)addTarget:(id)target action:(SEL)cation forControlEvents:(UIControlEvents)controlEvents;
-(void)removeTarget:(id)target action:(SEL)cation forControlEvents:(UIControlEvents)controlEvents;
4、
a、代理的用处是什么?
监听那些不能通过addTarget方法监听的事件
代理是一种设计模式,带oc中使用广泛,主要负责用来在两个对象之间,发生某些事件时传递消息和数据
b、代理的实现步骤
(1) 成为(子)控件的代理,父亲(控制器)成为儿子(文本框)的代理(拖线)
(2) 遵守协议->利用智能提示,快速编写代码
(3)实现协议方法
5关于textfield
a、
textfiele中监听输入数据的代理:
-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
//如
NSLog(@"%@ %@",NSStringFromRange(range),string);//通过输出确定变量含义
//限制输入长度
int loc = range.location;
return (loc < 6);
//如果返回NO,就不向文本框中添加字符
}
//个人理解:控件每输入一次数据,都会调用代理,因此实现监听
b、
属性中Placeholder为占位符,即每输入文字时显示在文本框中起提示作用的一行字
c、在文本框中按回车的处理:
//两个textfield属性 userNameText(用户名)和pwdText(密码),viewController是他们共同的代理时
-(BOOL)textFieldShouldReturn:(UITextField *)textField
{
NSLog(@"%@",textField);
//如果光标在用户名,切换到密码
if(textField == self.userNameText){
//密码成为第一响应者
[self.pwdText becomeFirstResponder];
}else if(textField == self.pwdText){
//如果是密码,直接调用登陆方法
[self login];
}
}
d、textfield中return key中的secure勾选,可以隐藏输入的内容
e、clear button中 选择Appears while editing可以实现输入时全部清楚的圆形按钮
6、NSLog(@"%s",__func__);//输出正在运行的方法
7、关闭键盘方法:
a、[self.view endEidting:YES];//不知道光标在哪里时,强制关闭键盘
b、在特定位置关闭键盘,[textField resignFirstResponder];//此时,键盘在输入textfield内容的地方出现