UIControl及其它的子類--seg,slider,switch,stepper

The most difficult thing is the decision to act. The rest is merely tenacity.
--最困難的是下決定,剩下的就要堅(jiān)持了。(Amelia Earhart)

小王第一次認(rèn)真的完成知識點(diǎn)的整理,希望可以堅(jiān)持。 FIGHTING!!!!

UISegmentedControl的使用


簡述

1.iOS中的分段控件
2.每個(gè)segment都能被點(diǎn)擊,相當(dāng)于集成了若干個(gè)button
3.通常我們會點(diǎn)擊不同的segment來切換不同的View


常用方法和屬性

//自有的初始化方法--可以添加多個(gè)分段
//items為各個(gè)分段的標(biāo)題(NSArray類型)
UISegmentedControl *segmentControl = [[UISegmentedControl alloc] initWithItems:@[@"Zero",@"One",@"Two"]];

//設(shè)置默認(rèn)被選中的分段(從左向右,從0開始計(jì)數(shù),默認(rèn)為從0開始)
segmentControl.selectedSegmentIndex = 0;

//給每個(gè)分段設(shè)置圖片,顏色,三種模式

    segmentControl.tintColor = [UIColor greenColor];//讓分段控制器改為綠色

     UIImageRenderingModeAutomatic,       默認(rèn)方式:根據(jù)當(dāng)前視圖顏色渲染的上下文來自動選擇是否要渲染當(dāng)前圖片,目前會渲染視圖的大多數(shù)是(tintcolor)// Use the default rendering mode for the context where the image is used
     
     UIImageRenderingModeAlwaysOriginal,   圖片保持自己當(dāng)前的色彩,不被當(dāng)前視圖顏色渲染  // Always draw the original image, without treating it as a template
     
     UIImageRenderingModeAlwaysTemplate,    圖片不保持自己當(dāng)前的色彩,始終被當(dāng)前視圖顏色渲染 // Always draw the image as a template image, ignoring its color information

//為segmented添加方法
[segmentControl addTarget: selfaction:@selector(segAction:) forControlEvents:UIControlEventValueChanged];

執(zhí)行方法

1,NSInteger index = sender.selectedSegmentIndex;  //首先獲取到segmented的index,來確認(rèn)目前所選的是哪個(gè)分段
2,進(jìn)行判斷...一般用switch...case 語句來進(jìn)行判斷

注意事項(xiàng)
由于我們有默認(rèn)的選中狀態(tài),此時(shí)并沒有任何狀態(tài)的改變,所以我們需要手動的來觸發(fā)回調(diào)方法

 [self.view addSubview:imageView];  //  手動觸發(fā)回調(diào)方法


UISlider的使用


簡述

1.iOS中的滑塊控件
2.通常用于控制視頻播放進(jìn)度,控制音量等操作
3.滑塊提供了一系列的值,滑動到不同位置,獲取到滑塊的值也不同


常用屬性

minimumValue  //  設(shè)置滑塊的最小值
maximumValue //  設(shè)置滑塊的最大值
value  //設(shè)置滑塊的當(dāng)前值
minimumTrackTinkColor  //定義劃過的區(qū)域的顏色
maximumTrackTinkColor  //定義還未劃過的區(qū)域的顏色
minimumValueImage    //最小值處的圖片
maximumValueImage    //最大值處的圖片
ThumbImage      //滑塊的圖片
addTarget: action: forControlEvents: //給UISlider添加事件,controlEvent為UIControlEventValueChanged。

用法

slider 和 SegmentedControl 的用法基本相似
不同點(diǎn)為

SegmentedControl 實(shí)現(xiàn)方法時(shí)要用到它的index來確定分段
slider 實(shí)現(xiàn)方法時(shí)要得到它的實(shí)時(shí)value來進(jìn)行方法實(shí)現(xiàn)


Switch的使用

簡述

1.switch 是開關(guān)的意思,一般手機(jī)上面的藍(lán)牙,WiFi等開關(guān)都是switch控件
2.只有開閉兩種狀態(tài)
3.幾乎和button的用法一樣

屬性

onTintColor   //  設(shè)置開關(guān)on狀態(tài)的顏色
tintColor  //設(shè)置開關(guān)的色彩,整體色調(diào)
thumbColor   //設(shè)置開關(guān)小圓鈕的顏色

用法

**switch為系統(tǒng)占用字,所以創(chuàng)建對象時(shí)不可以用switch做對象名**
switch1 .on = YES;  //  設(shè)置switch的狀態(tài)為on
switch1.isOn  //  用來根據(jù)狀態(tài)判斷執(zhí)行的事件

Stepper的使用

簡述

1.UIStepper是iOS5之后新增的控件,數(shù)字輸入控件
2.UIStepper是一個(gè)和UISwitch 很相似的一個(gè)控件,不同點(diǎn)是它的左右為“+”和“-”
3.遞進(jìn)式輸入

屬性

minimumValue   //Stepper的最小值
maximumValue   、、//Stepper的最大值
stepValue  //Stepper每次操作減少或增加的數(shù)值

注意:上述值的類型均為,double*

簡單舉例

通過UISlider實(shí)現(xiàn)調(diào)色設(shè)置

- (void)sliderAction: (UISlider *)sender{
    //根據(jù)tag值得到三個(gè)滑竿,分別來控制紅,綠,藍(lán),
    UISlider *redSlider = (UISlider *)[self.view viewWithTag:1100];
    UISlider *greenSlider = (UISlider *)[self.view viewWithTag:1101];
    UISlider *blueSlider = (UISlider *)[self.view viewWithTag:1102];
    self.view.backgroundColor = [UIColor colorWithRed:redSlider.value/255.0 green:greenSlider.value/255.0 blue:blueSlider.value/255.0 alpha:1.0];
}

通過三個(gè)slider改變RGB實(shí)現(xiàn)調(diào)整背景色(忽略丑爆的UI)

通過UIStepper實(shí)現(xiàn)簡單計(jì)數(shù)

//定義一個(gè)Stepper
    UIStepper *step = [[UIStepper alloc] initWithFrame:CGRectMake(150, 550, 100, 50)];
    step.minimumValue = 1.0;
    step.maximumValue = 20.0;
    step.stepValue = 2.0;
    [step addTarget:self action:@selector(stepper:) forControlEvents:UIControlEventValueChanged];
    [self.view addSubview:step];
    //定義一個(gè)label來顯示Stepper操作后的數(shù)值變化
    UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(150, 500, 100, 40)];
    label.tag = 1500;
    label.text = @"計(jì)數(shù):";
    [self.view addSubview:label];
//回調(diào)方法
- (void)stepper: (UIStepper *)sender{
    UILabel *label = (UILabel *)[self.view viewWithTag:1500];
    NSString *str = [ NSString stringWithFormat:@"計(jì)數(shù):%f",[sender value]];
    label.text = str;
}

通過Stepper操作的簡單計(jì)數(shù)顯示

哇!終于整完了,手速確實(shí)很慢,大家靜候下一期吧?。?!
Good night!??!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容