UISegmentedControl 整理

原地址:http://blog.sina.com.cn/s/blog_9d4c34cf0101emql.html

UISegmentedControl 整理

一、使用

 

{

//数组内可以存图片也可以存字符串

NSArray * items = [[NSArray alloc] initWithObjects:@"red",@"green",@"blue",@"yellow", nil];

UISegmentedControl * segment = [[UISegmentedControl alloc] initWithItems:items];

segment.frame = CGRectMake(0, 20, 320, 100);

 

segment.selectedSegmentIndex = 0;//选中第几个segment 

 

[segment addTarget:self action:@selector(goSeg:) forControlEvents:UIControlEventValueChanged];

 

[self.view addSubview:seg];

[items release];

[segment release];

}

 

-(void)goSeg:(UISegmentedControl *)sender{

    NSLog(@"%d",sender.selectedSegmentIndex);

}

用文字初始化的segmentcontrol


用图片初始化的segmentcontrol


二、交互

 

//设置 及 获取 下标为2的segment的是否与用户交互

[segment setEnabled:NO forSegmentAtIndex:2];

[segment isEnabledForSegmentAtIndex:2];


//默认为NO,选中的segment再次点击,不会执行方法

//设为YES,选中的segment,当手指离开会再次恢复普通状态,类似与button,每次都点击同一个segment都会执行方法

segment.momentary = YES;

三、管理segment(设置与获取segment内容,下标以0开始

 

//是否根据segment的内容改变segment的宽度

segment.apportionsSegmentWidthsByContent = YES; 



//插入带图片或标题的segment

[segment insertSegmentWithImage:[UIImage imageNamed:@"3"] atIndex:2 animated:YES];

[segment insertSegmentWithTitle:@"add" atIndex:0 animated:YES];


//设置 及 获取 下标为2的segment的图片

[segment setImage:[UIImage imageNamed:@"3"] forSegmentAtIndex:2];

[segment imageForSegmentAtIndex:2];


//设置 及 获取 下标为3的segment的标题 

[segment setTitle:@"Clicked" forSegmentAtIndex:3];

[segment titleForSegmentAtIndex:3];


//设置 及 获取 下标为2的segment的宽度

[segment setWidth:10 forSegmentAtIndex:2];

[segment widthForSegmentAtIndex:2];


//设置 及 获取 下标为2的segment的图片或标题的位置(偏移量)

[seg setContentOffset:CGSizeMake(2020) forSegmentAtIndex:2];

[segment contentOffsetForSegmentAtIndex:2];

 


//得到segment的数量

[segment numberOfSegments];

 

四、自定义segmentControl的外观

1、样式

segment.segmentedControlStyle UISegmentedControlStylePlain;

 

typedef enum {
   UISegmentedControlStylePlain,// large plain 默认
   UISegmentedControlStyleBordered,//large bordered
   UISegmentedControlStyleBar, //small button/nav bar style.tintable
   UISegmentedControlStyleBezeled,//DEPRECATED.Do not use this style.废弃
} UISegmentedControlStyle;


默认UISegmentedControlStylePlain 


UISegmentedControlStyleBordered

UISegmentedControlStyleBar



如果类型为UISegmentedControlStyleBar,可以调用tintColor修改颜色

seg.tintColor = [UIColor purpleColor];

 

2、自定义 segmentControl背景图片

 

//拉伸图片,让图片更清晰

UIImage * image_Nomal = [[UIImage imageNamed:@"1.png"]stretchableImageWithLeftCapWidth:10 topCapHeight:10];

 

UIImage * image_Selected = [[UIImage imageNamed:@"2.png"]stretchableImageWithLeftCapWidth:10 topCapHeight:10];

//设置普通状态背景颜色

[seg setBackgroundImage: image_Nomal forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];

//设置高亮背景颜色

[seg setBackgroundImage: image_Selected forState:UIControlStateSelected barMetrics:UIBarMetricsDefault];

//设置分割线颜色

[seg setDividerImage:[UIImage imageNamed:@"3.png"] forLeftSegmentState:UIControlStateSelected rightSegmentState:UIControlStateSelected barMetrics:UIBarMetricsDefault];



typedef enum {
    UIBarMetricsDefault,  //竖屏
    UIBarMetricsLandscapePhone,  //横屏
} UIBarMetrics;

3、自定义 segmentControl 的文字显示

//设置字体字典内的键

NSString *const UITextAttributeFont;                        value: UIFont

NSString *const UITextAttributeTextColor;                value: UIColor
NSString *const UITextAttributeTextShadowColor;    value: UIColor
NSString *const UITextAttributeTextShadowOffset;   value: NSValue wrapping a UIOffset

//代码

 

//设置普通状态文字显示样式。字典第一个键值对设置字体,否则可能无法正常显示

 

NSDictionary * attributes_Nomal = [[NSDictionary alloc] initWithObjectsAndKeys:[UIFont fontWithName:@"DBLCDTempBlack" size:20],UITextAttributeFont,[UIColor greenColor],UITextAttributeTextColor,[NSValue valueWithCGSize:CGSizeMake(2, 2)],UITextAttributeTextShadowOffset,[UIColor blueColor],UITextAttributeTextShadowColor, nil];

//设置高亮状态的文字显示样式,设置字体和大小也无法正常显示

NSDictionary * attributes_Selected = [[NSDictionary alloc] initWithObjectsAndKeys:[UIFont fontWithName:@"CourierNewPSMT" size:10],UITextAttributeFont,[UIColor purpleColor],UITextAttributeTextColor,[NSValue valueWithCGSize:CGSizeMake(-2, -2)],UITextAttributeTextShadowOffset,[UIColor whiteColor],UITextAttributeTextShadowColor, nil];


//设置字体

[seg setTitleTextAttributes:attributes_Nomal forState:UIControlStateNormal];

[seg setTitleTextAttributes:attributes_Selected forState:UIControlStateSelected];



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值