#pragma mark – 創建不同的分段器
//初始化方法:傳入的數組可以是字符串也可以是UIImage對象的圖片數組
UISegmentedControl *mysegmented = [[UISegmentedControl alloc] initWithItems:@[@"左邊",@"我是中間",@"右邊"]];
mysegmented.frame = CGRectMake(50, 200, kScreenWidth-100, 40);
[self.view addSubview: mysegmented];
//第二種創建方式
UISegmentedControl *mysegmented2 = [[UISegmentedControl alloc] initWithFrame:CGRectMake(100, 200, 300, 40)];
//animated為NO即表示不是即時修改,等點擊事件結束後再響應
[mysegmented2 insertSegmentWithTitle:@"聊天" atIndex:1 animated:YES];
[mysegmented2 insertSegmentWithTitle:@"通話" atIndex:0 animated:YES];
// [self.view addSubview:mysegmented2];
//創建一個圖片數組,用圖片來作為分段器的元素
NSArray *imageArray = @[[UIImage imageNamed: @"prev"],[UIImage imageNamed: @"next"]];
UISegmentedControl *yoursegmented = [[UISegmentedControl alloc] initWithItems:imageArray];
yoursegmented.frame = CGRectMake(100, 450, kScreenWidth-200, 65);
[self.view addSubview: yoursegmented];
#pragma mark – 重設標簽標題和獲取標簽標題
[mysegmented setTitle: @"我是修改過的標簽" forSegmentAtIndex:1];
NSString *titleString = [mysegmented titleForSegmentAtIndex: 1];
NSLog(@"%@", titleString);
//也可以重新設置圖片標簽和獲取標簽圖片
//- (void)setImage:(UIImage *)image forSegmentAtIndex:(NSUInteger)segment;
//- (UIImage *)imageForSegmentAtIndex:(NSUInteger)segment;
/* 以下是在ios開發中,對segmentedControl控件的一些屬性的用法解析,隻能用手機查看不能自己運行的也沒有關系,以下內容是帶圖片的。*/
#pragma mark – 設置標簽的顏色(默認為blue)以及圖片
//背景顏色
mysegmented.backgroundColor = [UIColor greenColor];
//文字的顏色,邊框的顏色,以及選中的標簽的顏色
mysegmented.tintColor = [UIColor redColor];
//設置標簽的背景圖片,還可以獲取分段器的背景圖片
//[mysegmented setBackgroundImage:[UIImage imageNamed:@"prev"] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
//(設置的是整個分段器的背景圖片),UIBarMetrics是一個枚舉,default默認背景圖片充滿整個分段器
#pragma mark – 設置分段器的分割線的圖片(同樣的,也可以獲取圖片)
// – (void)setDividerImage:(UIImage *)piderImage forLeftSegmentState:(UIControlState)leftState rightSegmentState:(UIControlState)rightState barMetrics:(UIBarMetrics)barMetrics
#pragma mark – 選中狀態(若不指定下標,那麼根據創建的items順序,下標從0開始增長)
mysegmented.selectedSegmentIndex = 0;
yoursegmented.selectedSegmentIndex = 1;
#pragma mark – numberOfSegments,獲取標簽的個數,隻讀的
NSInteger i = mysegmented.numberOfSegments;
NSLog(@"一共有%ld個標簽",i);
#pragma mark – 設置標簽寬度是否隨內容自適應(設置為NO則表示所有標簽寬度一致為最大的寬度)
mysegmented.apportionsSegmentWidthsByContent = NO;
#pragma mark – 插入文字標簽或圖片在index位置
[mysegmented insertSegmentWithTitle: @"我是插入的標簽" atIndex:2 animated:YES];
[yoursegmented insertSegmentWithImage: [UIImage imageNamed: @"next"] atIndex:0 animated:YES];
#pragma mark – 根據索引刪除標簽或刪除所有標簽
[mysegmented removeSegmentAtIndex: 1 animated: YES];
//[mysegmented removeSegmentAtIndex: 1 animated: NO];
//刪除所有標簽 [mysegmented removeAllSegments];
#pragma mark – 根據索引設置相應標簽寬度和獲取標簽寬度
//若setWidth設置為0.0,則默認為自適應寬度
[yoursegmented setWidth: 50.0 forSegmentAtIndex:0];
//獲取標簽寬度
//- (CGFloat)widthForSegmentAtIndex:(NSUInteger)segment;
#pragma mark – 設置標簽內容的偏移量和獲取偏移量
[mysegmented setContentOffset: CGSizeMake(20.0, 0) forSegmentAtIndex:0];
//獲取偏移量
//- (CGSize)contentOffsetForSegmentAtIndex:(NSUInteger)segment;
#pragma mark – 根據索引設置標簽是否有效(默認有效)和獲取是否有效
//- (void)setEnabled:(BOOL)enabled forSegmentAtIndex:(NSUInteger)segment;
//- (BOOL)isEnabledForSegmentAtIndex:(NSUInteger)segment;
#pragma mark – 點擊事件(可以帶參數)
[mysegmented addTarget:self action:@selector(segmentedAction) forControlEvents:UIControlEventValueChanged];
//這裡需創建另外的視圖控制器進行演示
}
//點擊事件
– (void) segmentedAction{
FirstViewController *firstVC = [[FirstViewController alloc] init];
[self.view addSubview:firstVC.view];
//從父視圖上移除 [_firstVC.view removeFromSuperview];
}
/*
以上是我自己總結的分段器控件的一些基本屬性,剪掉圖片,以上代碼可以直接復制粘貼到自己的工程中運行,可自行查看和修改結果。對以上有異議或者想和我一起討論的,可以加我的qq 78928861,大傢一起討論,一起學習。
*/