UISegmentedControl详解

来源:互联网 发布:诺基亚n96软件下载 编辑:程序博客网 时间:2024/06/15 15:29

这个空间用的不是很多,但是用到你就需要研究一下.

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];
0 0