你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> iOS第五章控件和動作

iOS第五章控件和動作

編輯: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]; 

}

 

 

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved