您的位置:首页 > 产品设计 > UI/UE

07-UI常见控件之 UISegmentedControl分栏

2015-07-09 20:38 399 查看
    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的显示样式。
[align=left]typedef NS_ENUM(NSInteger, UISegmentedControlStyle) {[/align]
[align=left]UISegmentedControlStylePlain,     // large plain系统默认平板样式[/align]
[align=left]segmentedControl.segmentedControlStyle = UISegmentedControlStylePlain;[/align]



[align=left]UISegmentedControlStyleBordered,  // large bordered黑边样式[/align]
[align=left]segmentedControl.segmentedControlStyle = UISegmentedControlStyleBordered;[/align]



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



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

2.tintColor 渐变颜色

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



[align=left] [/align]

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

[align=left]默认为NO[/align]
[align=left]segmentedControl.momentary =No;[/align]
[align=left] [/align]
[align=left]点击之后效果:[/align]



[align=left]segmentedControl.momentary =YES;[/align]
[align=left]点击之后效果:[/align]



[align=left] [/align]
[align=left] [/align]

4. numberOfSegments(只读)

获取总选项数segmentedControl.numberOfSegments
[align=left] [/align]

5. selectedSegmentIndex

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

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

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



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

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

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

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



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;

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



11. - (void)removeAllSegments;

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

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

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



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;       

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

15.增加事件响应机制

监听的是这个事件:UIControlEventValueChanged,值改变事件
 
[segmentedControl addTarget:self action:@selector(itemClick)  forControlEvents:UIControlEventValueChanged];
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  IOS开发 UI基础