1. 程式人生 > >iOS 十大控制元件

iOS 十大控制元件

10個控制元件

label

button

view

imageview

textfield

textview

interface build     IBOutlet  介面顯示

IBAction  和void一個型別

計步器

UIStepper * stepper 

進度條

UIProgressView * progress 

警告框

         1、新增的警告框的標題

         2、警告框的內容

         3、設定代理一般設定當前類的物件指標為UIAlertView的代理

         4、設定按鈕的標題此處的標題一般的時候不預設

         5、設定多個按鈕標題

UIAlertView * alertview = [[UIAlertViewalloc]initWithTitle:@"警告"message:@"你很帥" delegate:selfcancelButtonTitle:@"我知道了" otherButtonTitles:@"呵呵", nil];

//alerview 就是與使用者互動的警告框

//buttonIndex  警告框上的按鈕的下標值(從左向右,或者從上向下,下標值逐漸加1)

//cancelButton 的下標值永遠為0

提示框

//destructiveButton 的下標值為0 按鈕從上到下,下標值逐個加1

UIActionSheet * sheet = [[

UIActionSheetalloc]initWithTitle:@"上傳圖片資訊" delegate:selfcancelButtonTitle:@"取消"destructiveButtonTitle:@"確定" otherButtonTitles:@"拍照",@"從相簿中獲取",@"從本地獲取", nil];

//將提示框新增到檢視上面

分段控制元件物件

NSArray * arr  = @[@"red",@"green",@"blue"];

UISegmentedControl * segmentcontrol = [[UISegmentedControlalloc]initWithItems

:arr];

    segmentcontrol.frame = CGRectMake(10, 100, 300, 40); 

建立滑動塊

UISlider * slider = [[UISlideralloc]initWithFrame:CGRectMake(10, 100, 300, 10)];

網頁檢視WEBview

UIWebView * webview = [[UIWebViewalloc]initWithFrame:CGRectMake(0, 50, 320, 480-50)];

建立開關控制元件物件 及活動指示器

UISwitch * swtichview = [[UISwitchalloc]initWithFrame:CGRectMake(100, 100, 100, 40)];

//活動指示器不能與使用者進行互動

//經常用於顯示載入中

//<1>建立活動指示器物件

/*

     UIActivityIndicatorViewStyleWhiteLarge,

     UIActivityIndicatorViewStyleWhite,

     UIActivityIndicatorViewStyleGray

     */

UIActivityIndicatorView * activity = [[UIActivityIndicatorViewalloc]initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge]; //活動指示器

 建立選擇器控制元件UIPickerView

picker = [[UIPickerViewalloc]initWithFrame:CGRectMake(0, 230, 320, 480-230)];

picker.backgroundColor = [UIColorgreenColor];

//設定代理    必須設定代理,不然無法傳值   

picker.delegate = self;

picker.dataSource = self;

計步器

//<1>建立計步器物件

UIStepper * stepper = [[UIStepperalloc]initWithFrame:CGRectMake(100, 100, 100, 100)];

進度條

//進度條不能與使用者進行互動

//必須讓外界觸發

/*

     UIProgressViewStyleDefault,     

     UIProgressViewStyleBar

     */

UIProgressView * progress = [[UIProgressViewalloc]initWithProgressViewStyle:UIProgressViewStyleDefault];

 //重寫viewWillAppear方法,對檢視上的資料或者佈局進行修改

-(void)viewWillAppear:(BOOL)animated

{

UIStepper * stepper = (UIStepper *)[self.viewviewWithTag:99];

UIProgressView * progressview = (UIProgressView *) [self.viewviewWithTag:100];

    stepper.value = 0;

    progressview.progress = 0;

}

-(void)createStepper // 計步器

{

//<1>建立計步器物件

UIStepper * stepper = [[UIStepperalloc]initWithFrame:CGRectMake(100, 100, 100, 100)];

//<2>設定stepper的背景顏色預設背景顏色為白色和按鈕一樣的預設顏色

//stepper.backgroundColor = [UIColor redColor];

//<3>設定stepper的邊框顏色

//預設為藍色

    stepper.tintColor = [UIColorpurpleColor];

//<4>設定stepper的最小值

    stepper.minimumValue = 0;

//<5>設定stepper的最大值

    stepper.maximumValue = 100;

//<6>設定初始值

    stepper.value = 0;

//<7>stepper新增點選事件

    [stepper addTarget:selfaction:@selector(stepperChange:) forControlEvents:UIControlEventValueChanged];

//<8>設定stepper的步長(點選+的時候steppervalue的值的變化

    stepper.stepValue = 10;

//<9>禁止長按的屬性

//預設情況下是允許長按的

    stepper.autorepeat = NO;

//stepper.continuous = NO; //過時了,5.0 不能用

    stepper.tag = 99;

    [self.viewaddSubview:stepper];

    [stepper release];

}

-(void)stepperChange:(id)sender

{

//id表示任意型別的控制元件物件

//sender表示使用者互動的控制元件,這種使用者互動機制所有控制元件都具有

UIStepper * stepper = (UIStepper *)sender;

UIProgressView * progressview = (UIProgressView *)[self.viewviewWithTag:100];

    progressview.progress = stepper.value/stepper.maximumValue;

if (progressview.progress == 1) {

NExTViewController * next = [[NExTViewControlleralloc]init];

        [selfpresentViewController:next animated:YEScompletion:Nil];

        [next release];

    }

}

-(void)createProgress //進度器

{

//進度條不能與使用者進行互動

//必須讓外界觸發

/*

     UIProgressViewStyleDefault,     

     UIProgressViewStyleBar

     */

UIProgressView * progress = [[UIProgressViewalloc]initWithProgressViewStyle:UIProgressViewStyleDefault];

//<1>設定顯示位置

    progress.frame = CGRectMake(10, 200, 300, 10);

//<2>設定進度條左側的顏色

    progress.progressTintColor = [UIColorredColor];

//<3>設定進度條右側的顏色

    progress.trackTintColor = [UIColorblueColor];

//<4>設定進度條的初始值

    progress.progress = 0;

//progress值從01

//如果設定的這progress的值大於0,那麼進度條永遠都處於充滿的狀態

    progress.tag = 100;

    [self.viewaddSubview:progress];

    [progress release];

}

建立警告框

     -(void)createBtn

{

UIButton * btn1 = [XLMyButtoncreatButtonWithFrame:CGRectMake(100, 100, 100, 100) target:selfsel:@selector(perssBtn:) tag:1image:Niltitle:@"警告框"];

    [self.viewaddSubview:btn1];

UIButton *btn2 = [XLMyButtoncreatButtonWithFrame:CGRectMake(100, 200, 100, 100) target:selfsel:@selector(perssBtn:) tag:2image:niltitle:@"高仿警告框"];

    [self.viewaddSubview:btn2];

}

-(void)perssBtn:(id)sender

{

UIButton * btn = (UIButton *)sender;

if (btn.tag == 1) {

//建立警告框

/*

         1、新增的警告框的標題

         2、警告框的內容

         3、設定代理一般設定當前類的物件指標為UIAlertView的代理

         4、設定按鈕的標題此處的標題一般的時候不預設

         5、設定多個按鈕標題

         */

UIAlertView * alertview = [[UIAlertViewalloc]initWithTitle:@"警告"message:@"你很帥" delegate:selfcancelButtonTitle:@"我知道了" otherButtonTitles:@"呵呵", nil];

//alerview新增到檢視上

        [alertview show]; //警告框獨有的方法

        alertview.tag = 100;

        [alertview release];

//alertview不需要設定顯示位置及大小,編譯器會自動設定警告顯示在檢視的中心位置

//alertview顯示出來以後,後面的原有檢視不能與使用者互動,直到警告框消失才可與使用者互動

    }

else

    {

UIAlertView * alert = [[UIAlertViewalloc]initWithTitle:@"測試性格" message:@"選擇顏色"  delegate:selfcancelButtonTitle:@"確定" otherButtonTitles:@"",@"",@"",@"",nil];

        [alert show];

        [alert release];

    }

// 點選警告框上的按鈕,會自動觸發協議中的方法

}

-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex

{

//alerview 就是與使用者互動的警告框

//buttonIndex  警告框上的按鈕的下標值(從左向右,或者從上向下,下標值逐漸加1)

//cancelButton 的下標值永遠為0

if (alertView.tag == 100) {

if (buttonIndex == 0) {

NSLog(@"點選的是:我知道了");

        }

else

        {

NSLog(@"點選的是:呵呵按鈕");

        }

    }

else

    {

switch (buttonIndex) {

case1:

self.view.backgroundColor = [UIColorredColor];

break;

case2:

self.view.backgroundColor = [UIColoryellowColor];

break;

case3:

self.view.backgroundColor = [UIColorblueColor];

break;

case4:

self.view.backgroundColor= [UIColorgreenColor];

break;

default:

break;

        }

    }

}

提示框

-(void)perssBtn:(id)sender

{

//提示框的顯示位置及大小都是系統自動設定的,無需手動設定

//提示框顯示位置在檢視底的位置,向上彈出

//destructiveButton alertview中的cancelbutton相同,一般的時候這個按鈕不能預設

//destructiveButton 的下標值為0 按鈕從上到下,下標值逐個加1

UIActionSheet * sheet = [[UIActionSheetalloc]initWithTitle:@"上傳圖片資訊" delegate:selfcancelButtonTitle:@"取消"destructiveButtonTitle:@"確定" otherButtonTitles:@"拍照",@"從相簿中獲取",@"從本地獲取", nil];

//將提示框新增到檢視上面

    [sheet showInView:self.view];//提示框獨有的方法

    [sheet release];

}

//點選按鈕觸發協議中的方法

-(void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex

{

NSLog(@"%d",buttonIndex);

}

分段控制元件物件

//分段控制元件

-(void)createSegment

{

//<1>建立分段控制元件物件

NSArray * arr  = @[@"red",@"green",@"blue"];

UISegmentedControl * segmentcontrol = [[UISegmentedControlalloc]initWithItems:arr ];

    segmentcontrol.frame = CGRectMake(10, 100, 300, 40);

//<2>設定分段控制元件的邊框顏色

    segmentcontrol.tintColor = [UIColorpurpleColor];

//<3>設定預設選中的分段位置

    segmentcontrol.selectedSegmentIndex = 0;

//<4>插入新的分段

    [segmentcontrol insertSegmentWithTitle:@"new"atIndex:0animated:YES];

//<5>點選事件

    [segmentcontrol addTarget:selfaction:@selector(perssBtn:) forControlEvents:UIControlEventValueChanged];

    [self.viewaddSubview:segmentcontrol];

    [segmentcontrol release];

}

-(void)perssBtn:(id)sender

{

UISegmentedControl * segment = (UISegmentedControl *)sender;

if (segment.selectedSegmentIndex == 1) {

self.view.backgroundColor = [UIColorredColor];

    }

elseif (segment.selectedSegmentIndex == 2)

    {

self.view.backgroundColor = [UIColorblueColor];

    }

else

    {

self.view.backgroundColor =[UIColorwhiteColor];

    }

}

建立滑動塊

   -(void)createSlider

{

//<1>建立滑動塊

UISlider * slider = [[UISlideralloc]initWithFrame:CGRectMake(10, 100, 300, 10)];

//<2>設定slider的最大值

    slider.maximumValue = 1;

//<3>設定最小值

    slider.minimumValue = 0;

//<4>設定slider的初始值

    slider.value = 0;

//<5>設定slider的左側的顏色

    slider.minimumTrackTintColor  = [UIColorredColor];

//<6>設定slider右側的顏色

    slider.maximumTrackTintColor = [UIColoryellowColor];

//<7>slider新增事件,能與使用者互動

    [slider addTarget:selfaction:@selector(sliderChsanged:) forControlEvents:UIControlEventValueChanged];

    slider.tag = 1;

    [self.viewaddSubview:slider];

    [slider release];

UISlider * slider1 = [[UISlideralloc]initWithFrame:CGRectMake(10, 200,300, 30)];

    slider1.minimumValue = 0;

    slider1.maximumValue = 1;

    slider1.minimumTrackTintColor = [UIColorcyanColor];

    slider1.maximumTrackTintColor = [UIColormagentaColor];

    slider1.value  = 0;

    slider1.tag = 2;

//設定slider左側圖片

    slider1.minimumValueImage = [UIImageimageNamed:@"tab_c1.png"];

//設定slider右側圖片

    slider1.maximumValueImage = [UIImageimageNamed:@"tab_c3.png"];

//設定slider按鈕圖片

    [slider1 setThumbImage:[UIImageimageNamed:@"tab_c0.png"] forState:UIControlStateNormal];

    [slider1 addTarget:selfaction:@selector(sliderChsanged:) forControlEvents:UIControlEventValueChanged];

    [self.viewaddSubview: slider1];

    [slider1 release];

}

-(void)sliderChsanged:(id)sender

{

UISlider * slider = (UISlider * )sender;

if (slider.tag == 1) {

NSLog(@"%f",slider.value);

    }

else

    {

if (slider.value < 1) {

staticint count = 10;

            count ++;

self.view.backgroundColor = [UIColorcolorWithRed:(count * 25%255)/255.0green:(count * 26%255)/255.0blue:(count * 29%255)/255.0alpha:1];

        }

    }

}

網頁檢視WEBview

-(void)createWebView

{

//<1>建立webview的物件,顯示網址下的所有資料

UIWebView * webview = [[UIWebViewalloc]initWithFrame:CGRectMake(0, 50, 320, 480-50)];

//<2>設定字串網址

NSString * path = @"http://10.0.8.8";

//<3>將字串轉化成NSURL

NSURL * url = [NSURLURLWithString:path];

//<4>NSURL封裝成請求物件

NSURLRequest * request = [NSURLRequestrequestWithURL:url];

//<5>將請求下來的資料顯示在webview

    [webview loadRequest:request];

    webview.tag = 1;

    [self.viewaddSubview: webview];

    [webview release];

}

-(void)createSlider

{

UISlider * slider = [[UISlideralloc]initWithFrame:CGRectMake(0, 30, 320, 10)];

    slider.minimumValue = 10;

    slider.maximumValue = 1000;

    slider.value = 10;

    [slider addTarget:selfaction:@selector(shliderchanged:) forControlEvents:UIControlEventValueChanged];

    slider.tag =100;

    [self.viewaddSubview: slider];

    [slider release];

}

-(void)shliderchanged:(id)sender

{

UIWebView * web = (UIWebView *)[self.viewviewWithTag:1];

UISlider * slider =(UISlider *)[self.viewviewWithTag:100];

    [web stringByEvaluatingJavaScriptFromString:[NSStringstringWithFormat:@"document.getElementsByTagName('body')[0].style.webkitTextSizeAdjust= '%f%%'",slider.value]];

    [web stringByEvaluatingJavaScriptFromString:@"document.getElementsByTagName('body')[0].style.webkitTextFillColor= 'blue'"];

}

 <1>建立開關控制元件物件 及活動指示器

  -(void)createSwitch

{

//<1>建立開關控制元件物件

UISwitch * swtichview = [[UISwitchalloc]initWithFrame:CGRectMake(100, 100, 100, 40)];

//<2>設定開關按鈕初始狀態

    swtichview.on = NO;

//<3>設定開關按鈕開啟時候的背景顏色

    swtichview.onTintColor = [UIColoryellowColor];

//<4>設定開關按鈕關閉時的顏色

    swtichview.tintColor = [UIColorcyanColor];

//<5>設定開關按鈕上按鈕的顏色

    swtichview.thumbTintColor = [UIColorredColor];

//<6>新增點選事件

    [swtichview addTarget:selfaction:@selector(switchChanged:) forControlEvents:UIControlEventTouchUpInside];

    [self.viewaddSubview: swtichview];

    [swtichview release];

}

-(void)switchChanged:(id)sender

{

UISwitch * twmpSwitch = (UISwitch *)sender;

UIActivityIndicatorView * activity = (UIActivityIndicatorView *)[self.viewviewWithTag:200];

//判斷開關按鈕的狀態

//tempSwitch.isOn表示開啟狀態

if (twmpSwitch.isOn) {

        activity.hidden = NO;

        [activity startAnimating];   //開始動畫

    }

else

    {

        [activity stopAnimating]; //停止動畫

//hidesWhenStopped  yes ,所以動畫停止的時候自動隱藏,此處無需設定隱藏狀態

    }

}

-(void)crea