iOS開發(fā)UI階段——第五節(jié) UIControl及其子類

UIControl

UIControl:有控制功能的視圖的父類

只要跟控制有關的類都是繼承自該類,同時我們通常不會直接用這個類,而用的都是該類的子類

常用方法

- (void)addTarget:(id)target action:(SEL)action forControlEvents:(UIControlEvents)controlEvents; // 添加一個事件

- (void)removeTarget:(id)target action:(SEL)action forControlEvents:(UIControlEvents)controlEvents; // 移除一個事件


UISwitch

在創(chuàng)建過程中在frame里的size是沒有意義的,因為系統(tǒng)開關控件大小是固定的

UISwitch相關屬性

UISwitch *firstSwitch = [[UISwitch alloc] initWithFrame:CGRectMake(100,100,0,0)]; // 創(chuàng)建UISwitch

firstSwitch.onTintColor= [UIColor redColor];// 設置開關開啟狀態(tài)的顏色

firstSwitch.tintColor= [UIColor blackColor];// 設置開關風格顏色

firstSwitch.thumbTintColor= [UIColor blueColor];// 設置開關按鈕顏色

[firstSwitch setOn:YES animated:YES];// 手動設置開關狀態(tài)?

// firstSwitch.on 獲取開關當前狀態(tài)

[self.view addSubview:firstSwitch]; // 將UISwitch放入視圖中


UISlider

滑塊通常用于控制視頻或者音頻的播放的進度,控制音量等操作

UISlider相關屬性

UISlider *slider = [[UISlider alloc] initWithFrame:CGRectMake(100,200,100,40)]; // 創(chuàng)建UISlider

slider.minimumValue=0.0;// 設置滑塊的最小值

slider.maximumValue=100.0;// 設置滑塊的最大值

slider.value=50;// 設置滑塊的值

slider.minimumTrackTintColor= [UIColorblackColor];// 設置滑塊劃過區(qū)域的顏色

[slider addTarget:selfaction:@selector(slider:) forControlEvents:UIControlEventValueChanged];// 滑塊添加事件,觸發(fā)方式為值的改變


UISegmentedControl

分段控件常用在不同類別的信息之間選擇,或者切換不同的視圖

UISegmentedControl相關屬性

UISegmentedControl *segmentedControl = [[UISegmentedControl alloc] initWithItems:@[@"你",@"我"]];segmentedControl.frame = CGRectMake(100,300,100,40); // 創(chuàng)建UISegmentedControl

// selectedSegmentIndex 指定被選中的分段

// segmentedControlStyle 設置樣式

segmentedControl.momentary=YES;// 設置在點擊后是否恢復原樣

// [segmentedControl setTitle:nil forSegmentAtIndex:0]; 為指定下標的分段這是title

// [segmentedControl setImage: forSegmentAtIndex:]; 為指定小標的分段這只圖片[segmentedControl setEnabled:NO forSegmentAtIndex:1]; // 設置指定索引是否可點

segmentedControl.tintColor= [UIColor grayColor];// 樣式顏色

[segmentedControl?addTarget:selfaction:@selector(segmentedControl:) forControlEvents:UIControlEventValueChanged];


UIPageControl

UIPageControl相關屬性

UIPageControl *pageControl = [[UIPageControl alloc] initWithFrame:CGRectMake(100,400,100,40)]; // 創(chuàng)建UIPageControl

pageControl.backgroundColor= [UIColorgrayColor];

pageControl.numberOfPages=3;// 指定頁數(shù)

pageControl.currentPage=1;// 設置當前頁數(shù),第一頁為0

pageControl.currentPageIndicatorTintColor= [UIColor redColor];// 設置當前選中頁數(shù)的顏色

pageControl.pageIndicatorTintColor= [UIColor whiteColor];// 沒有選中頁數(shù)的顏色


@implementationViewController

- (void)sliderAction:(UISlider*)slider {

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

}

- (void)segmentedAction:(UISegmentedControl*)segment {

switch(segment.selectedSegmentIndex) {

case0:

NSLog(@"第一");

self.view.backgroundColor= [UIColorgreenColor];

break;

case1:

NSLog(@"第二");

self.view.backgroundColor= [UIColororangeColor];

break;

case2:

NSLog(@"第三");

self.view.backgroundColor= [UIColorlightGrayColor];

break;

default:

break;

}

}

- (void)pageControlAction:(UIPageControl*)pageControl {

NSLog(@"翻頁");

}

- (void)viewDidLoad {

[superviewDidLoad];

//開關

UISwitch*newSwitch = [[UISwitchalloc]initWithFrame:CGRectMake(200,80,0,0)];//開關大小只能是系統(tǒng)默認值

[self.viewaddSubview:newSwitch];

//設置開關開啟狀態(tài)的顏色

newSwitch.onTintColor= [UIColorblueColor];

//設置開關風格顏色

newSwitch.tintColor= [UIColororangeColor];

//設置開關按鈕顏色

newSwitch.thumbTintColor= [UIColorblackColor];

//設置開關是否開啟

//??? newSwitch.on = NO;

//手動設置開關狀態(tài)

[newSwitchsetOn:YESanimated:NO];

//滑塊

UISlider*slider = [[UISlideralloc]initWithFrame:CGRectMake(20,150,350,40)];

[self.viewaddSubview:slider];

//設置slider的最大、最小值

slider.maximumValue=5.0;

slider.minimumValue=0.0;

//設置劃過區(qū)域的顏色

slider.minimumTrackTintColor= [UIColorredColor];

//設置未劃過區(qū)域的顏色

slider.maximumTrackTintColor= [UIColorgreenColor];

//設置滑塊的顏色

slider.thumbTintColor= [UIColorblueColor];

//添加點擊事件

[slideraddTarget:selfaction:@selector(sliderAction:)forControlEvents:UIControlEventValueChanged];

//在滑塊終點加載圖片

//??? [slider setMaximumTrackImage:image forState:UIControlStateNormal];

//分段控件

UISegmentedControl*segment = [[UISegmentedControlalloc]initWithItems:@[@"第一",@"第二",@"第三"]];

segment.frame=CGRectMake(90,300,250,40);

[self.viewaddSubview:segment];

//指定segment的顏色

segment.tintColor= [UIColorpurpleColor];

//添加事件

[segmentaddTarget:selfaction:@selector(segmentedAction:)forControlEvents:UIControlEventValueChanged];

//UIPageControl

UIPageControl*pageControl = [[UIPageControlalloc]initWithFrame:CGRectMake(90,600,200,40)];

//設置頁數(shù)

pageControl.numberOfPages=5;

//設置當前頁默認是0(第一頁)

pageControl.currentPage=1;

pageControl.backgroundColor= [UIColorbrownColor];

//設置圓點的顏色

pageControl.currentPageIndicatorTintColor= [UIColorredColor];

pageControl.pageIndicatorTintColor= [UIColorwhiteColor];

[self.viewaddSubview:pageControl];

//添加事件

[pageControladdTarget:selfaction:@selector(pageControlAction:)forControlEvents:UIControlEventValueChanged];

}

@end

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

相關閱讀更多精彩內容

  • 這篇博客主要是闡述四個繼承于UIControl的視圖控制器 首先介紹的是UISwitch, 人們習慣叫它開關. 如...
    我與太陽肩并肩閱讀 1,604評論 0 12
  • 首先不得不說 UIButton的父類就是UIControl今天主要介紹UIControl的四種控件 UISwitc...
    9bf19a4010ab閱讀 415評論 0 0
  • { 11、核心動畫 需要簽協(xié)議,但是系統(tǒng)幫簽好 一、CABasicAnimation 1、創(chuàng)建基礎動畫對象 CAB...
    CYC666閱讀 1,697評論 2 4
  • 代碼創(chuàng)建UIWindow對象 Xcode7之后使用代碼創(chuàng)建UIWindow對象: //創(chuàng)建UIWindow對象 s...
    云之君兮鵬閱讀 1,493評論 0 2
  • 今天,是我暗戀了十年的人的生日,我學著同學祝福的另類模式,在卡片上寫上祝福語,背景是我所在城市的標志性建筑,拍照發(fā)...
    泠若御風閱讀 518評論 1 3

友情鏈接更多精彩內容