07-UI常见控件之 UISegmentedControl分栏

原创 2015年07月09日 20:38:20
    NSArray *arr = @[@"常用",@"主页",@"返回"];
   
    UISegmentedControl *seg = [[UISegmentedControlalloc] initWithItems:arr];
    seg.frame = CGRectMake(100, 200, 200, 50);
    [self.viewaddSubview:seg];
   
    seg.selectedSegmentIndex;//通过这个属性获得当前下标0 1 2
   
    [seg addTarget:selfaction:@selector(action:)forControlEvents:UIControlEventValueChanged];
   
}

- (void)action :(UISegmentedControl *)seg
{
    NSLog(@"%ld",
          seg.selectedSegmentIndex);//通过这个属性获得当前下标0 1 2
}




UISegment属性

1.segmentedControlStyle

设置segment的显示样式。
typedef NS_ENUM(NSInteger, UISegmentedControlStyle) {
UISegmentedControlStylePlain,     // large plain系统默认平板样式
segmentedControl.segmentedControlStyle = UISegmentedControlStylePlain;

UISegmentedControlStyleBordered,  // large bordered黑边样式
segmentedControl.segmentedControlStyle = UISegmentedControlStyleBordered;

UISegmentedControlStyleBar,       // small button/nav bar style. Tintable条状样式
segmentedControl.segmentedControlStyle =UISegmentedControlStyleBar;

    UISegmentedControlStyleBezeled,   // DEPRECATED. Do not use this style. 这个类型不要使用,用了会报错喔。
};
 

2.tintColor 渐变颜色

Default tintColor is nil. Only used if style is UISegmentedControlStyleBar
默认空,只有使用UISegmentedControlStyleBar,才能设置渐变颜色。
segmentedControl.segmentedControlStyle =UISegmentedControlStyleBar;
segmentedControl.tintColor = [UIColor redColor];
效果:

 

3.momentary 设置在点击后是否恢复原样

默认为NO
segmentedControl.momentary =No;
 
点击之后效果:

segmentedControl.momentary =YES;
点击之后效果:

 
 

4. numberOfSegments(只读)

获取总选项数segmentedControl.numberOfSegments
 

5. selectedSegmentIndex

用来设置选中项或者返回选中项。
segmentedControl.selectedSegmentIndex = 2;//设置默认选择项索引
segmentedControl.selectedSegmentIndex // 获取选中项

6.- (void)setTitle:(NSString *)title forSegmentAtIndex:(NSUInteger)segment;

[segmentedControl setTitle:@"two" forSegmentAtIndex:1];//设置指定索引的题目
效果:

7. - (void)setImage:(UIImage *)image forSegmentAtIndex:(NSUInteger)segment;      

[segmentedControl setImage:[UIImage imageNamed:@"lan.png"] forSegmentAtIndex:3];//设置指定索引的图片

8.-(void)insertSegmentWithTitle:(NSString*)title atIndex:(NSUInteger)segment animated:(BOOL)animated;

[segmentedControl insertSegmentWithTitle:@"add" atIndex:3 animated:NO];//在指定索引插入一个选项并设置题目
效果:

9.-(void)insertSegmentWithImage:(UIImage *)image  atIndex:(NSUInteger)segment animated:(BOOL)animated;

[segmentedControl insertSegmentWithImage:[UIImage imageNamed:@"mei.png"]atIndex:2 animated:NO];//在指定索引插入一个选项并设置图片
 

10.- (void)removeSegmentAtIndex:(NSUInteger)segment animated:(BOOL)animated;

[segmentedControl removeSegmentAtIndex:0 animated:NO];//移除指定索引的选项
效果:

11. - (void)removeAllSegments;

    //移除所有选项
//[segmentedControl removeAllSegments];
 

12. - (void)setWidth:(CGFloat)width forSegmentAtIndex:(NSUInteger)segment;        // set to 0.0 width to autosize. default is 0.0

选项卡的宽度默认为0,此方法能够设置选项卡宽度。
[segmentedControl setWidth:70.0 forSegmentAtIndex:2];//设置指定索引选项的宽度
 
效果:

13. - (void)setContentOffset:(CGSize)offset forSegmentAtIndex:(NSUInteger)segment;// adjust offset of image or text inside the segment. default is (0,0)

[segmentedControl setContentOffset:CGSizeMake(10,0)forSegmentAtIndex:1];
设置选项卡内部文字或者图片与默认位置的偏移量,默认位置在选项卡的中心。
效果:

14. - (void)setEnabled:(BOOL)enabled forSegmentAtIndex:(NSUInteger)segment;       

 
[segmentedControl setEnabled:NO forSegmentAtIndex:4];//设置指定索引选项不可选
 

15.增加事件响应机制

监听的是这个事件:UIControlEventValueChanged,值改变事件
 
[segmentedControl addTarget:self action:@selector(itemClick)  forControlEvents:UIControlEventValueChanged];
 
版权声明:本文为博主原创文章,未经博主允许不得转载。

UISegmentedControl的基本用法

@UISegmentedControl类似于UIButton,它可以提供多个选择操作,响应事件,但具有很大的局限性,我们更多的是使用自定义的,不过在这里还是介绍下它的基本用法. NS...
  • humingtao2013
  • humingtao2013
  • 2014年08月05日 21:07
  • 20104

IOS中的UISegmentedControl控件实现多行文本

默认的UISegmentedControl控件只能显示单行的文本,超过部分会用...代替,如果想启用多行文本,请使用以下代码。我是在MainBoardStroy中添加UISegmentedContro...
  • hardstone1
  • hardstone1
  • 2017年06月16日 09:28
  • 367

RichTextBox中模拟分栏显示RichTextBox中模拟分栏显示

需要显示多个项,每个项都有一个名称和内容组成,想要达到名称以粗体显示,内容以正常方式显示;同时允许内容有多行;名称在左侧显示,内容在右侧显 示,如果内容有多行,各行起始处要对齐。为此试了几个控件,最...
  • alwaysrun
  • alwaysrun
  • 2010年07月20日 17:45
  • 1152

UISegmentedControl的常用属性

UISegmentedControl集成关系:UISegmentedControl:UIControl:UIView:UIResponder:NSObject
  • lover0920
  • lover0920
  • 2015年12月03日 14:56
  • 602

IOS的基本控件的使用-步进器&分栏控制器

ViewController.h //  步进器&分栏控件 // //  Created by mac on 2016/10/28. //  Copyright © 2016年...
  • gaojian123321
  • gaojian123321
  • 2016年10月28日 13:35
  • 339

UISegmentedControl 改变选中颜色

UISegmentedControl默认选中颜色是蓝色,更改这个属性可以改变它的选中颜色状态,  self.segmentedView.segmentedControlStyle= UIS...
  • qq_20176153
  • qq_20176153
  • 2016年03月04日 17:30
  • 3984

UISegmentedControl添加图片不显示的问题

UIImage *picture1 = [[UIImage imageNamed:@"fuwu-1"]imageWithRenderingMode:UIImageRenderingModeAlways...
  • SYH523364
  • SYH523364
  • 2016年04月22日 14:51
  • 979

UISegmentedControl自定义背景颜色和字体颜色

在UISegmentedControl的控件中,有一个设置默认颜色的 // The tintColor is inherited through the superview hierarchy. S...
  • chuming0311
  • chuming0311
  • 2016年11月21日 15:13
  • 4752

Objective-C-iOS常用小控件(UISegmentedControl)

//UISegmentedControl分段选择 - (void)createSegmentedControl{     //创建分段     UISegmentedCo...
  • wwc455634698
  • wwc455634698
  • 2016年09月21日 16:32
  • 95

ios UISegmentedControl的使用

初始化UISegmentedControl NSArray *arr = [[NSArray alloc]initWithObjects:@"轻拍",@"长按",@"清扫",@"旋转",@"捏合...
  • heng615975867
  • heng615975867
  • 2015年02月05日 14:08
  • 15026
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:07-UI常见控件之 UISegmentedControl分栏
举报原因:
原因补充:

(最多只允许输入30个字)