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)添加协议、控制动作

@interface 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"

             otherButtonTitles: nil];

   //显示弹出提示框

   [alert show];

}

 

------------------------------------------------------------------------------------------------------------------------------

自定义按钮

(1)创建带有图片的按钮

[myButton setImage:[UIImageimageNamed:@"myButtonImage.png"] 

                   forState:UIControlStateNormal];

 

 

6、控制控件-开关 UISwitch

创建开关

初始化

CGRect switchRect = CGRectMake(120,50,0,0);

UISwitch *mySwitch = [[UISwitch alloc]initWithFrame:switchRect];

 

 

添加事件处理

[mySwitch addTarget: self

                        action:@selector(switchAction:)

      forControlEvents: UIControlEventValueChanged];

 

 

切换开关

[mySwitch setOn:YES animated:YES];

 

修改开关外观

获得开关的两个Label

UIView *mainView = [[[[mySwitch subviews]objectAtIndex:0] subviews] objectAtIndex:2];

UILabel *onLabel = [[mainView subviews]objectAtIndex:0];

UILabel *offLabel = [[mainView subviews]objectAtIndex:1];

 

 

修改字体和颜色

onLabel.text       = @"YES";

offLabel.text      = @"NO";

onLabel.textColor  = [UIColor yellowColor];

offLabel.textColor = [UIColor greenColor];

 

 

 

7、控制控件-滑块 UISlider

创建  

CGRect sliderRect = CGRectMake(20,50,280,40); 

UISlider *mySlider = [[UISlider alloc]initWithFrame: sliderRect];  

mySlider.minimumValue = 0;  

mySlider.maximumValue = 100;  

mySlider.continuous   = YES;  

……

 

 

 

 

处理滑动事件

-(void)sliderAction:(id)sender  

{  

    intstepAmount  = 10;  

    floatstepValue = (abs([(UISlider *)sender value]) / stepAmount) * stepAmount;  

    [sendersetValue: stepValue];   

    lblSliderValue.text= [NSString stringWithFormat: @"%d", (int)stepValue];  

}

 

代码下载: http://pan.baidu.com/share/link?shareid=536857234&uk=3189484501

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杜甲同学

感谢打赏,我会继续努力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值