UISegmentedControl分段控件取代了桌面OS上的單選按鈕。不外它的選項個數異常無限,由於你的IOS裝備屏幕無限。當我們須要應用選項異常少的單選按鈕時它很適合。
1、創立
UISegmentedControl* mySegmentedControl = [[UISegmentedControl alloc]initWithItems:nil];
是否是很奇異沒有指定地位和年夜小呢?沒錯,我確切在他的類聲明裡只找到 initWithItems 而未找到 initWithFrame ,所以他不須要指定,不外我看到了另外一個辦法,這個辦法可以設置Item的寬度:
mySegmentedControl setWidth:100 forSegmentAtIndex:0];//設置Item的寬度
2、屬性
mySegmentedControl.segmentedControlStyle = UISegmentedControlStyleBar;//作風
可以視應用的場所,有三種作風選擇,以下:
typedef enum {
UISegmentedControlStylePlain, // large plain 有灰邊的年夜白按鈕,合適偏好設置單位
UISegmentedControlStyleBordered, // large bordered 黑邊的年夜白按鈕,實用於表格單位
UISegmentedControlStyleBar, // small button/nav bar style. tintable 小按鈕,合適導航欄
UISegmentedControlStyleBezeled, // large bezeled style. tintable
} UISegmentedControlStyle;
假如你應用的是 UISegmentedControlStyleBar 作風,還可以用空間的 tintColor 屬性為全部控件設置襯著顏色:
UIColor *myTint = [[ UIColor alloc]initWithRed:0.66 green:1.0 blue:0.77 alpha:1.0];
mySegmentedControl.tintColor = myTint;
3、添加、刪除片斷
每一個分段控件的片斷都是一個按鈕,個中包括一個標簽或圖片。你須要在你的控件中為每一個控件創立一個片斷。只需屏幕放得下,便可以有很多片斷,但用戶統一時辰只能選擇一個片斷。
[mySegmentedControl insertSegmentWithTitle:@"First" atIndex:0 animated:YES];
[mySegmentedControl insertSegmentWithTitle:@"Second" atIndex:2 animated:YES];
每一個
按鈕都被付與一個索引,用這個索排序和標識。
你也能夠添加一個含有圖象的片斷,用inserSegmentWithImage
[mySegmentedControl insertSegmentWithImage:[UIImage imageNamed:@"pic"] atIndex:3 animated:YES];
刪除片斷
[mySegmentedControl removeSegmentAtIndex:0 animated:YES];//刪除一個片斷
[mySegmentedControl removeAllSegments];//刪除一切片斷
4、片斷題目
[mySegmentedControl setTitle:@"ZERO" forSegmentAtIndex:0];//設置題目
NSString* myTitle = [mySegmentedControl titleForSegmentAtIndex:1];//讀取題目
5、圖象
每一個分段也能夠設置圖象:
[mySegmentedControl setImage:[UIImage imageNamed:@"pic"] forSegmentAtIndex:1];//設置
UIImage* myImage = [mySegmentedControl imageForSegmentAtIndex:2];//讀取
留意:圖象不會主動調劑年夜小,圖片多年夜就會原生地顯示多年夜,所以你要告訴做圖的美工年夜小要准確。
6、選平分段
分段控件的默許行動是,一旦按鈕被選中就一向堅持,直到別的一個按鈕被選中為止。你可以轉變這類默許的行動,釀成按鈕按下後很快就主動釋放。將控件的momentary屬性設為YES:
mySegmentedControl.momentary = YES;
留意:開啟這個功效後點觸片斷不會更新 selectedSegmentedIndex,是以也就沒法經由過程這個屬性獲得以後拔取的片斷。
初始化默許片斷
默許情形下,除非你指定,不然不會有任何片斷被選中。要設置 selectedSegmentedIndex 屬性:
mySegmentedControl.selectedSegmentedIndex = 0;
7、顯示控件
[parentView addSubview:mySegmentedControl];//添加到父視圖
或
self.navigationItem.titleView = mySegmentedControl;//添加到導航欄
8、讀取控件
經由過程 selectedSegmentedIndex 屬性,可以讀取以後選平分段的值,這個值就是選中片斷的索引號。
int x = mySegmentedControl. selectedSegmentedIndex;
9、告訴
要吸收片斷拔取的告訴,可以用UIControl類的 addTarget 辦法,為 UIControlEventValueChanged 事宜添加一個舉措:
[mySegmentedControl addTarget:self action:@selector(selected:) forControlEvents:UIControlEventValueChanged];
只需選中了一個片斷,你的舉措辦法就會被挪用:
-(void)selected:(id)sender{
UISegmentedControl* control = (UISegmentedControl*)sender;
switch (control.selectedSegmentIndex) {
case 0:
//
break;
case 1:
//
break;
case 2:
//
break;
default:
break;
}
}
10、設置圓角和設置選中色彩為空
UISegmentedControl *seg = [[UISegmentedControl alloc]initWithItems:[NSArray arrayWithObjects:@"設置",@"曉得了", nil]];
seg.frame = CGRectMake(10,0, CGRectGetWidth(self.view.frame) - 20, 35);
seg.center = isbluetoothOffAlerView.center;
seg.layer.borderColor = [UIColor whiteColor].CGColor;
seg.layer.borderWidth = 2;
seg.tintColor = [UIColor whiteColor];
seg.backgroundColor = [UIColor clearColor];
NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:[UIColor whiteColor], NSForegroundColorAttributeName,[UIFont systemFontOfSize:24],NSFontAttributeName,nil];
[seg setTitleTextAttributes:dic forState:UIControlStateNormal];
seg.layer.cornerRadius = 15;
seg.layer.masksToBounds = YES;
【iOS App開辟中的UISegmentedControl分段組件用法總結】的相關資料介紹到這裡,希望對您有所幫助! 提示:不會對讀者因本文所帶來的任何損失負責。如果您支持就請把本站添加至收藏夾哦!