您的位置:首页 > 产品设计 > UI/UE

UILable  /  UITextField  /   UIButton

2015-12-05 22:26 477 查看
// 获取屏幕大小的view
UIView *contentView = [[UIView alloc] initWithFrame:[UIScreen mainScreen].bounds]; // bound是个矩形 bounds类型是CGRect

#pragma mark - UILable知识点

// UILable(标签),继承自UIView,主要用来显示文本,是在UIView基础上扩充出来的功能

/*

1.创建控件

2.配置控件的属性

3.添加到父视图

4.释放控件

*/
// 1.创建UILable控件
UILabel *lable = [[UILabel alloc] initWithFrame:CGRectMake(10, 80, 300, 80)];// 使用父类的方法创建

// 2.配置UILable的属性

// 2.1 背景颜色

lable.backgroundColor = [UIColor greenColor];

// 2.2 设置显示的文本

lable.text = @"AV达人 zhaoYaZhou and liuNing and liGuoQing and wangZhongJian";

// 2.3 设置文本颜色

lable.textColor = [UIColor whiteColor];

// 2.4 设置文本字体

// 设置的是系统默认字体大小

lable.font = [UIFont systemFontOfSize:10];

// 字体采用加粗的字体样式

lable.font = [UIFont boldSystemFontOfSize:40];
// 遍历系统中所有的字体名字
for (NSString *name in [UIFont familyNames]) { //familyNames 是个数组

NSLog(@"%@", name);

}
// 设置字体
lable.font = [UIFont fontWithName:@"Didot" size:18];

// 2.5 设置文本行数

// numberOfLines 设置为0,表示不限制行数,自动填充到lable中

// numberOfLines 默认值是1

lable.numberOfLines = 0;

// 2.6 设置换行格式

// 根据单词换行

//NSLineBreakByWordWrapping (默认)

// 根据字符换行

lable.lineBreakMode = NSLineBreakByCharWrapping;

// 2.7 设置字体的阴影颜色

lable.shadowColor = [UIColor redColor];

// 2.8 设置阴影偏移量

lable.shadowOffset = CGSizeMake(-2, -2);

// 2.9 设置文本对齐方式

// NSTextAlignmentLeft 左对齐

// NSTextAlignmentRight 右对齐

// NSTextAlignmentCenter 居中

lable.textAlignment = NSTextAlignmentCenter;

// 2.10 给lable切圆角,下面两个属性要同时设定

lable.layer.cornerRadius = 20;

lable.layer.masksToBounds = YES;

// 3.添加到父视图

[contentView addSubview:lable];

// 4.释放控件
[lable release];

#pragma mark - UITextField知识点

// UITextField 继承自UIControl,是在UILable的基础上扩充了文本输入的功能,可以允许用户输入文本,编辑文字
// UIControl 继承自UIView
// shift + command + k : 回收键盘

// 1. 创建UITextField对象

UITextField *textField = [[UITextField alloc]initWithFrame:CGRectMake(10, 200, 300, 40)]; // 也是使用父类的方法创建

// 2. 配置UITextField的属性

// 2.1 设置背景颜色

textField.backgroundColor = [UIColor whiteColor];

// 2.2 设置textField的提示字符

textField.placeholder = @"请输入名字";

// 2.3 设置输入框中的文本

textField.text = @"AV达人";

// 2.4 设置文本输入框字体的颜色 (只影响输入字体的颜色,不影响提示字符)

textField.textColor = [UIColor orangeColor];

// 2.5 设置文本输入的对齐方式

textField.textAlignment = NSTextAlignmentLeft;

// 2.6 设置textField输入框是否可以编辑.默认是可编辑的

//textField.enabled = NO;

// 关闭用户交互

//textField.userInteractionEnabled = NO;

// 2.7 当文本输入框开始编辑的时候是否清空输入框中的内容,默认值是NO,只在第一次起作用

textField.clearsOnBeginEditing = YES;

// 2.8 设置键盘弹出的样式.

textField.keyboardType = UIKeyboardTypeDefault;

// 2.9 设置return键的样式

textField.returnKeyType = UIReturnKeyGo;

// 2.10 设置输入边框的样式

/*

UITextBorderStyleNone, // 无边框样式

UITextBorderStyleLine, // 实线边框

UITextBorderStyleBezel, // 倾斜面边框

UITextBorderStyleRoundedRect // 圆角边框

*/
textField.borderStyle = UITextBorderStyleRoundedRect;
textField.layer.cornerRadius = 20;// 这种也行

// 2.11 设置键盘的弹出视图, 可以在弹出视图上自定义键盘

/*

UIView *inputView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 40)];

inputView.backgroundColor = [UIColor cyanColor];

textField.inputView = inputView;

[inputView release];

*/

// 2.12 设置键盘的辅助视图

UIView *accseeView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 40)];

accseeView.backgroundColor = [UIColor redColor];

textField.inputAccessoryView = accseeView;

[accseeView release];

// 2.13 设置文本输入框的清空按钮

/*

UITextFieldViewModeNever,

UITextFieldViewModeWhileEditing, // 开始编辑时出现清空按钮

UITextFieldViewModeUnlessEditing, // 当不编辑时弹出清空按钮,编辑时按钮消失

UITextFieldViewModeAlways // 一直显示,除非输入框中没有内容

*/

textField.clearButtonMode = UITextFieldViewModeUnlessEditing;

// 2.14 设置文本输入框是否以密文形式显示输入内容

textField.secureTextEntry = YES;

// 2.15 设置代理属性

/*

如何使用系统写好的协议设置代理

1. 设置代理

2. 让代理对象遵循协议

3. 实现协议中的方法

4. 告诉代理什么时候去干活

*/

textField.tag = 250;

textField.delegate = self;
////////////////////
#pragma mark - 实现UITextField协议中的方法
// called when 'return' key pressed. return NO to ignore.
// 当点击return按钮的时候触发此方法

- (BOOL)textFieldShouldReturn:(UITextField *)textField { // textField会自动传过来,不用管

// 取消第一响应者 取消的效果就是回收键盘

[textField resignFirstResponder];

return YES;
}
/////////////////

// 3.添加到父视图

[contentView addSubview:textField];

// 4.释放
[textField release];

// 2.15 设置代理属性

/*

如何使用系统写好的协议设置代理

1. 设置代理

2. 让代理对象遵循协议

3. 实现协议中的方法

4. 告诉代理什么时候去干活 (点击return的时候)
*/



或者也可以在AppDelegate类的延展上遵循协议,如下:



textField.delegate = self; // 设置代理,代理是AppDelegate

#pragma mark - 实现UITextField协议中的方法
// called when 'return' key pressed. return NO to ignore.
// 当点击return按钮的时候触发此方法
- (BOOL)textFieldShouldReturn:(UITextField *)textField { // textField会自动传过来,不用管

// 取消第一响应者 取消的效果就是回收键盘

[textField resignFirstResponder];

return YES;
}

另一种方法:
contentView.tag = 200; // 设置contentView的tag值
textField.tag = 250;
#pragma mark - 点击空白处实现回收键盘
// 点击屏幕时,手指离开的瞬间触发
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {

// 先拿到contentView

UIView *contentView = [self.window viewWithTag:200];

// 通过tag值取出textField

UITextField *textField = (UITextField *)[contentView viewWithTag:250];

// 取消第一响应者

[textField resignFirstResponder];

}

/*
// 有时需要注意类型转换
// 点击空白处收回键盘

-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {

for (int i = 200; i < 206; i++) {

LTView *t = (LTView *)[self viewWithTag:i];

[t.textField resignFirstResponder];

}
}
*/

#pragma mark - UIButton知识点

// UIButton 继承自UIControl,是iOS中用来响应用户点击事件的按钮

// UIButton 有自己的创建方法

// 1. 创建UIButton对象

/*button的样式

UIButtonTypeCustom , //!!!! 自定义样式, 如果要给button添加图片,必须使用此种样式
UIButtonTypeSystem , // standard system button 系统样式

UIButtonTypeDetailDisclosure, // 详情按钮

UIButtonTypeInfoLight, // 详情按钮

UIButtonTypeInfoDark, // 详情按钮

UIButtonTypeContactAdd, // 加号按钮

*/

UIButton *button = [UIButton buttonWithType:UIButtonTypeSystem]; // 不用释放button

// 2.配置button的属性

// 2.1 背景颜色

button.backgroundColor = [UIColor cyanColor];

// 2.2 单独设置button的frame(位置和大小)

button.frame= CGRectMake(30, 260, 260, 50);

// 2.3 给button切圆角

button.layer.cornerRadius = 7;

//! 2.4 给button添加标题, 注意添加标题的时候一定要指明,button的状态

/*状态

UIControlStateNormal = 0,

UIControlStateHighlighted = 1 << 0, // used when UIControl isHighlighted is set

UIControlStateDisabled = 1 << 1,

UIControlStateSelected = 1 << 2, // flag usable by app (see below)

UIControlStateApplication = 0x00FF0000, // additional flags available for application use

UIControlStateReserved = 0xFF000000

*/

//[button setTitle:@"正常状态" forState:UIControlStateNormal];

//[button setTitle:@"高亮状态" forState:UIControlStateHighlighted]; // 按住不丢

//[button setTitle:@"不可用状态" forState:UIControlStateDisabled];

//[button setTitle:@"可选中状态" forState:UIControlStateSelected]; // 触发不了

[button setTitle:@"登录" forState:UIControlStateNormal];

// 2.5 设置button的状态是否可用

//button.enabled = NO;

// 2.6 设置button上title的文字大小

//! button是个复合视图,集成了几种控件, 其中titleLable是用来放置标题的,还有一个imageView用来显示图片

button.titleLabel.font = [UIFont systemFontOfSize:20];

// 2.7 设置button内容的颜色
// [button.titleLabel.textColor] = [UIColor redColor]; // 这种改不了文本颜色

button.tintColor = [UIColor grayColor]; // tintColor

/*

// 2.8 给button添加图片

//! 要添加图片,要换成 UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; 自定义格式才能添加图片

// UIImage 继承自NSObject,不是一个视图,如果要展示UIImage需要使用UIImageView来展示

// .png格式的图片不需要加后缀,其他格式都需要加后缀

UIImage *image1 = [UIImage imageNamed:@"立即.jpg"]; // png格式的图片不需要加后缀了

UIImage *image2 = [UIImage imageNamed:@"立即登录.jpg"];

// 高亮状态

[button setImage:image1 forState:UIControlStateHighlighted]; // 会和文本抢地盘 ,二选一,要么添加图片,要么添加文本

// 正常状态

[button setImage:image2 forState:UIControlStateNormal];

*/

//! button关联事件

// 1. target : button指定的响应对象

// 2. action : 指定的响应对象调用的方法

// 3. events : 事件的触发时机

[button addTarget:self action:@selector(handleAction:) forControlEvents:UIControlEventTouchUpInside];

// 3. 添加到父视图上
[contentView addSubview:button];
#pragma mark - 实现button的点击事件方法 button关联事件
- (void)handleAction:(UIButton *)button { // 自动传进来参数

NSLog(@"鼓掌");

//! 取出某个状态下的button标题 VIP

NSString *title = [button titleForState:UIControlStateNormal];

// 添加关联事件

if ([title isEqualToString:@"登录"]) {

[button setTitle:@"下线" forState:UIControlStateNormal];

}else if ([title isEqualToString:@"下线"]) {

[button setTitle:@"登录" forState:UIControlStateNormal];

}

}

Practice:

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