這個空間用的不是很多,但是用到你就需要研究一下.
NSArray * array = @[@"1",@"2",@"3",@"4",@"5"];
UISegmentedControl * segment = [[UISegmentedControl alloc] initWithItems:array];
segment.frame = CGRectMake(0, 100, [UIScreen mainScreen].bounds.size.width, 60);
//屬性
/*
typedef NS_ENUM(NSInteger, UISegmentedControlStyle) {
UISegmentedControlStylePlain,
UISegmentedControlStyleBordered,
UISegmentedControlStyleBar,
UISegmentedControlStyleBezeled,
} NS_DEPRECATED_IOS(2_0, 7_0, "The segmentedControlStyle property no longer has any effect") __TVOS_PROHIBITED;
*/
segment.segmentedControlStyle = UISegmentedControlStyleBar;//已經被丟棄用了
/*
設置是否保持選中狀態:
注意:如果設置爲YES,點擊結束後,將不保持選中狀態,默認爲NO
*/
segment.momentary = NO;
NSLog(@"numberofsegment%ld",segment.numberOfSegments);//只讀屬性; 獲取當前的個數
// 設置標籤寬度是否隨內容自適應:
// 注意:如果設置爲NO,則除去自定義寬度的標籤以外的所有標籤寬度一致,爲最大寬度。
segment.apportionsSegmentWidthsByContent = NO;
// 插入文字標籤在index位置
[segment insertSegmentWithTitle:@"插入的" atIndex:1 animated:YES];
UIImage * image = [UIImage imageNamed:@"a"];
image = [image imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
//此處要關閉渲染,控件會自動渲染我們的圖片
[segment insertSegmentWithImage:image atIndex:1 animated:YES];
// [segment removeSegmentAtIndex:1 animated:YES];//刪除指定
// [segment removeAllSegments];//刪除所有
[segment setTitle:@"重設" forSegmentAtIndex:1]; //重設標題
UIImage * image1 = [UIImage imageNamed:@"b"];
image1 = [image imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
[segment setImage:image1 forSegmentAtIndex:1];//重設圖片
NSLog(@"%@",[segment titleForSegmentAtIndex:1]);//獲取標籤title
NSLog(@"%@",[segment imageForSegmentAtIndex:1]);
// 根據索引設置相應標籤寬度
[segment setWidth:50 forSegmentAtIndex:1];
NSLog(@"%f",[segment widthForSegmentAtIndex:1]);//根據索引獲取標籤寬度
//設置標籤內容的偏移量 注意:這個偏移量指的是標籤的文字或者圖片
[segment setContentOffset:CGSizeMake(100, 100) forSegmentAtIndex:1];
NSLog(@"%f",[segment contentOffsetForSegmentAtIndex:1].width);//獲取偏移量
[segment setEnabled:NO forSegmentAtIndex:1];//根據所以設置標籤是否有效(默認有效)
NSLog(@"%d",[segment isEnabledForSegmentAtIndex:1]);//根據索引獲取當前標籤是否有效
NSLog(@"%ld",segment.selectedSegmentIndex);//設置和獲取當前選中的標籤索引
segment.tintColor = [UIColor redColor];//設置標籤風格顏色
/*
UIBarMetricsDefault, //充滿
UIBarMetricsCompact,
UIBarMetricsDefaultPrompt = 101, // 只有在提示屬性條適用,tabbar,
UIBarMetricsCompactPrompt,
UIBarMetricsLandscapePhone NS_ENUM_DEPRECATED_IOS(5_0, 8_0, "Use UIBarMetricsCompact instead") = UIBarMetricsCompact,
UIBarMetricsLandscapePhonePrompt
*/
[segment setBackgroundImage:[UIImage imageNamed:@"1"] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
// 設置標籤之間分割線的圖案
// [segment setDividerImage:[UIImage imageNamed:@"2"] forLeftSegmentState:UIControlStateNormal rightSegmentState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
/*
獲取標籤之間分割線的圖案
- (UIImage *)dividerImageForLeftSegmentState:(UIControlState)leftState rightSegmentState:(UIControlState)rightState barMetrics:(UIBarMetrics)barMetrics
*/
// [segment setTitleTextAttributes:@{NSShadowAttributeName:@2} forState:UIControlStateNormal];//通過Attribute字符串屬性字典設置標籤標題
[segment setContentPositionAdjustment:UIOffsetMake(10, 10) forSegmentType:UISegmentedControlSegmentAny barMetrics:UIBarMetricsDefault];//自行設置標籤內容的偏移量
/*
UISegmentedControlSegmentAny = 0,//所有標籤都受影響
UISegmentedControlSegmentLeft = 1, //只有左邊部分受到影響
UISegmentedControlSegmentCenter = 2, // 只有中間部分受到影響
UISegmentedControlSegmentRight = 3, // 只有右邊部分受到影響
UISegmentedControlSegmentAlone = 4, // 在只有一個標籤的時候生效
獲取自定義偏移量
- (UIOffset)contentPositionAdjustmentForSegmentType:(UISegmentedControlSegment)leftCenterRightOrAlone barMetrics:(UIBarMetrics)barMetrics
*/
[segment addTarget:self action:@selector(segmentclick:) forControlEvents:UIControlEventValueChanged];//必須UIControlEventValueChanged
[self.view addSubview:segment];