iOS——UISegmentedControl 的用法
来源:互联网 发布:淘宝运营商是真的吗 编辑:程序博客网 时间:2024/05/29 18:33
UISegmentedControl是iOS中的分段控件。
//Segmented 分段的、分割
每个segment都能被点击,相当于集成了若干个button。
通常我们会点击不同的segment来切换不同的view。
//分配间距方法,默认最长,每个都是最长的。 self.segmentedcontrol=[[UISegmentedControl alloc]initWithItems:@[@"爽",@"爽啊",@"爽"]]; //设置大小位置,(父类的方法) _segmentedcontrol.frame=CGRectMake(0, self.frame.origin.y+30, self.frame.size.width-50, 30);// 设置点击后是否恢复原样,默认是NO,不恢复.(是否保持选中状态) _segmentedcontrol.momentary=YES;// 获取标签个数 NSInteger number=_segmentedcontrol.numberOfSegments; NSLog(@"个数:%ld",(long)number);//设置标签宽度是否随内容自适应( 注意:如果设置为NO,则所有标签宽度一致,为最大宽度) _segmentedcontrol.apportionsSegmentWidthsByContent=YES;// 设置和获取当前选中的标签索引// index 超出范围,不设置,不报错 _segmentedcontrol.selectedSegmentIndex=2; NSInteger index=_segmentedcontrol.selectedSegmentIndex; NSLog(@"index=%ld",(long)index);//此时只能输出默认的选中项,在点击事件中可实现点击输出。// 渲染颜色:注意:这个风格颜色会影响标签的文字和图片 _segmentedcontrol.tintColor=[UIColor greenColor]; [self addSubview:_segmentedcontrol];
// 插入文字标签在index位置:// 参数animated 是否是动画模式, 位置index ,放到指定位置,相对于上一个来说。并不是放上之后在第几个位置, [_segmentedcontrol insertSegmentWithTitle:@"马上" atIndex:0 animated:YES];//插入图片标签在index位置 [_segmentedcontrol insertSegmentWithImage:[[UIImage imageNamed:@"cat"]imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal ] atIndex:3 animated:YES]; /* typedef NS_ENUM(NSInteger, UIImageRenderingMode) { UIImageRenderingModeAutomatic, // Use the default rendering mode for the context where the image is used UIImageRenderingModeAlwaysOriginal, // Always draw the original image, without treating it as a template, 总是把原始图像,没有把它作为一个模板 UIImageRenderingModeAlwaysTemplate, // Always draw the image as a template image, ignoring its color information,总是把图像作为模板图像,忽视它的颜色信息 } NS_ENUM_AVAILABLE_IOS(7_0);*/// 根据索引删除某个标签,坐标超过范围,不删除。 [_segmentedcontrol removeSegmentAtIndex:2 animated:YES];// 全部删除 [_segmentedcontrol removeAllSegments];// 根据下标重设标签标题下标超出范围,崩溃 [_segmentedcontrol setTitle:@"在路上" forSegmentAtIndex:2];,,// 根据下标获得标题,下标超出范围,崩溃 NSString * title=[_segmentedcontrol titleForSegmentAtIndex:1]; NSLog(@"%@",title); // 根据下标设置标签图片 :注意:标题的图片只能设置一个 [_segmentedcontrol setImage:[[UIImage imageNamed:@"ear"]imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal] forSegmentAtIndex:0];// 获取标签图片 UIImage * image=[_segmentedcontrol imageForSegmentAtIndex:0]; NSLog(@"%@",image);// 根据索引设置相应标签宽度:注意:如果设置为0.0,则为自适应,默认为此设置 [_segmentedcontrol setWidth:30 forSegmentAtIndex:0]; CGFloat windth=[_segmentedcontrol widthForSegmentAtIndex:0]; NSLog(@"%f",windth); //设置标签内容的偏移量 :注意:这个偏移量指的是标签的文字或者图片 CGSize size=CGSizeMake(200, 100); [_segmentedcontrol setContentOffset:size forSegmentAtIndex:1]; // 根据索引设置标签是否有效,(默认有效)NO 为不可选。 [_segmentedcontrol setEnabled:NO forSegmentAtIndex:1]; // 根据索引获取当前标签是否有效 BOOL enabled=[_segmentedcontrol isEnabledForSegmentAtIndex:1]; NSLog(@"%d",enabled);
// 设置特定状态下segment的背景图案 [_segmentedcontrol setBackgroundImage:[UIImage imageNamed:@"img"] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];// 对应特定状态下segment的背景图案 UIImage *image=[_segmentedcontrol backgroundImageForState:UIControlStateNormal barMetrics:UIBarMetricsCompact]; NSLog(@"%@",image);// 设置标签之间分割线的图案 [_segmentedcontrol setDividerImage:[UIImage imageNamed:@"label"] forLeftSegmentState:UIControlStateHighlighted rightSegmentState:UIControlStateHighlighted barMetrics:UIBarMetricsDefault];// 对应的取出标签之间分割线的图案 UIImage *image1=[_segmentedcontrol dividerImageForLeftSegmentState:UIControlStateHighlighted rightSegmentState:UIControlStateHighlighted barMetrics:UIBarMetricsDefault]; NSLog(@"%@",image1);// // 通过Attribute字符串属性字典设置标签标题// NSDictionary * dictionary=[[NSDictionary alloc]initWithObjectsAndKeys:@"key1",@"value1",@"key2",@"value2",@"key3",@"value3", nil];// [_segmentedcontrol setTitleTextAttributes:dictionary forState:UIControlStateNormal];
UISegmentedControl 监听事件:
- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view.// 添加监听事件 // [self.rootView.segmentedcontrol addTarget:self action:@selector(segmentedcontrolAction:) forControlEvents:UIControlEventValueChanged];}-(void)segmentedcontrolAction:(UISegmentedControl *)sender{ NSUInteger index=sender.selectedSegmentIndex; switch (index) { case 0: NSLog(@"第一个选项被选中"); break; case 1: NSLog(@"第二个选项被选中"); break; case 2: NSLog(@"第三个选项被选中"); break; default: break; }}
0 0
- iOS——UISegmentedControl 的用法
- IOS的UISegmentedControl用法
- iOS——UISegmentedControl的使用
- iOS—UISegmentedControl的详细使用
- ios UISegmentedControl 用法
- ios UISegmentedControl 用法 【转】
- IOS系列——UISegmentedControl的详细使用
- iOS学习笔记—— UISegmentedControl 控件的简单使用
- UISegmentedControl的基本用法
- UISegmentedControl的基本用法
- UISegmentedControl的用法
- UISegmentedControl的基本用法
- ios UISegmentedControl的使用
- iOS———-分段控件(UISegmentedControl)
- iOS UISegmentedControl 的简单使用
- iOS--UISegmentedControl的使用方法详细
- andorid模仿iOS的UISegmentedControl
- UISegmentedControl 用法
- SpringMVC—接收请求参数和页面传参
- hdu 5427 A problem of sorting
- VS2013开发上位机并调用MSCcommm控件的方式
- CCF 201409-4最优配餐(BFS)
- 收到批评的开心
- iOS——UISegmentedControl 的用法
- 小四轴调试记录
- UVA1592 Database
- 谈谈我所理解的Hibernate
- FTP 跳转攻击
- 应该认识自己是谁
- beanstalkd消息队列在生产环境的应用
- uvaoj 12003 - Array Transformer
- iOS开发-Day32 数据持久化