IOS的segmentedControl(分段器控制項)的一些常用屬性,segmentedcontrol控制項
#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 *)dividerImage 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,大家一起討論,一起學習。
*/