iOS第五章控件和动作
目标
回顾基本组件窗口和视图
了解 IOS UIKit 框架中常用视图组件
显示控件-标签 UILabel
显示控件-文本框控件 UITextField
控制控件-按钮 UIButton
控制控件-开关 UISwitch
控制控件-滑块 UISlider
其他控件-分段控件、分页控件
1、回顾基本组件窗口和视图
UIWindow
一个应用程序只有一个窗口,为UIWindow的实例
初始边框为整个屏幕的大小
支持窗口层叠放置
UIView
一个窗口,多个视图
视图负责屏幕的一块显示区域
视图可以嵌套
一个视图可以有多个子视图
响应用户触摸事件
UIImageView
专门保管图片的视图
2、了解 IOS UIKit 框架中常用组件
视图类组件
容器
为视图内容提供额外的视觉分隔
//////
窗口
提供绘制的场所UIWindow
显示视图
用于简单的信息显示
UILabel、UITextView
UIImageView
警告视图和动作表单
取得用户的注意
UIAlertView
UIActionSheet
导航视图
为用户提供从一个屏幕到另一个屏幕的导航工具
UITabBar
UINavigationBar
表格视图
专门用于显示数据的视图
UITableView
选取器视图
用滚轮的方式让选择数据的
UIPickerView
图像视图
放置图片的视图容器,透明框
UIImageView
滚动视图
UIScrollView
文本视图
UITextView
3、显示控件-标签UILabel
UILabel
只读视图,显示一行或多行文本
(1)创建
CGRect labelFrame = CGRectMake(0, 10, 100, 50);
UILabel *myLabel = [[UILabel alloc]initWithFrame:labelFrame];
(2)设置颜色
myLabel.backgroundColor = [UIColor clearColor];
myLabel.textColor = [UIColor redColor];
(3)设置字体
myLabel.font = [UIFontfontWithName:@"Verdana" size:18.0];
(4)设置多行文本
myLabel.numberOfLines = 2;
myLabel.text = @"Hello World\nSecond line";
(5)添加到视图
[self.view addSubview: myLabel];
(6)释放
[myLabelrelease];
4、显示控件-文本框控件 UITextField
进行小段文本的输入,一般单行;
(1)创建
CGRect textRect = CGRectMake(10,10,300,31);
UITextField *myTextField = [[UITextField alloc]initWithFrame:textRect];
myTextField.backgroundColor = [UIColorwhiteColor];
(2)设置字体
myTextField.font = [UIFontsystemFontOfSize:22.0];
myTextField.adjustsFontSizeToFitWidth = YES;
myTextField.minimumFontSize = 2.0;
(3)添加协议、控制动作
@inte易做图ce MyUIControlViewController :UIViewController<UITextFieldDelegate>
绑定代理对象
- (void)viewDidLoad
{
……
myTextField.delegate= self;
}
(4)取消键盘
- (BOOL)textFieldShouldReturn:(UITextField*)textField
{
[textFieldresignFirstResponder];
returnYES;
}
(5)输入长度判断
- (BOOL)textField:(UITextField *)textFieldshouldChangeCharactersInRange
:(NSRange)rangereplacementString:(NSString *)string
{ intMAX_CHARS = 10;
NSMutableString*newText = [NSMutableString stringWithString: textField.text];
[newTextreplaceCharactersInRange: range withString:string];
return([newText length] <= MAX_CHARS);
}
5、控制控件-按钮 UIButton
创建按钮
------------------------------------------------------------------------------------------------------------------------------
使用 IB 完成:
(1)创建一个 View ,生成三个文件xxxViewController.xib、xxxViewController.h、xxxViewController.m、
(2)如果使用 图形化工具,打开 xxxViewController.xib ,从“对象库”中拖拽控件到 View 视图中,并通过“属性检查器” 设置按钮属性。
如果需要对按钮进行事件处理,需要在xxx.ViewController.h 文件中创建一个处理按钮事件的 IBAction 方法,并在 IB中,拖线 连接 按钮和IBAction.
- (IBAction)buttonPress:(UIButton *)sender;
对按钮事件的处理一般在 xxxViewController.m 文件中,对应的 IBAction 方法中编写。
- (IBAction)buttonPress:(UIButton *)sender {
//创建一个弹出提示框,
UIAlertView*alert = [[UIAlertViewalloc]
initWithTitle:@"提示标题"
message:@"通过xib实现的按钮处理方法"
delegate:self
cancelButtonTitle:@"OK"
otherButtonTitles: nil];
//显示弹出提示框
[alert show];
}
------------------------------------------------------------------------------------------------------------------------------
(3)如果使用纯代码编写,打开 xxxViewController.h,创建按钮对象作为 @propertity 属性
@property (nonatomic, retain, readonly) UIButton *roundedButtonType;
然后,在 xxxViewController.m 文件中编写代码:
在 - (void)viewDidLoad 方法中编写创建 按钮的代码 如下所示
//通过代码创建一个 Button
roundedButtonType= [UIButtonbuttonWithType:UIButtonTypeRoundedRect];
//设置按钮的位置和尺寸,前两个参数设置 顶点坐标,后两个参数设置 宽、高
roundedButtonType.frame = CGRectMake(50.0, 250.0, 88.0 , 48.0);
//设置按钮的标题和状态
[roundedButtonType setTitle:@"Rounded" forState:UIControlStateNormal];
//设置按钮的背景颜色
roundedButtonType.backgroundColor = [UIColor clearColor];
//设置用户对 按钮进行何种操作,处理按钮事件的操作(回调函数)
[roundedButtonType addTarget:self
action:@selector(action:)
forControlEvents:UIControlEventTouchUpInside];
//设置按钮的编号,便于区分多个按钮
roundedButtonType.tag = 2;
需要单独为按钮事件处理编写方法,一般都叫 xxxAction:
- (void)action:(id)sender
{
//创建一个弹出提示框,
UIAlertView *alert = [[UIAlertView alloc]
initWithTitle:@"提示标题"
message:@"通过纯编码实现的按钮处理方法"
delegate:self
cancelButtonTitle:@"OK"
&nb
补充:移动开发 , IOS ,