UISegmentedControl

来源:互联网 发布:男士牛仔衣搭配知乎 编辑:程序博客网 时间:2024/06/03 16:20
概述: 
    UISegmentedControl (分段控件), 相当于集成了若干个Button, 通常我们会点击不同的segment来切换不同的view.并且具有指示功能. iOS5 之后,可以自定义控件, 包括分段按钮的添加/ 删除/ , 外观的设定. 以及单个分段区域的设定.
    其事件类型为 UIControlEventValueChang


1. 基本属性

管理分段内容
- (void)setImage:(UIImage *)image
forSegmentAtIndex:(NSUInteger)segment
- (UIImage *)imageForSegmentAtIndex:(NSUInteger)segment
- (void)setTitle:(NSString *)title
forSegmentAtIndex:(NSUInteger)segment
- (NSString *)titleForSegmentAtIndex:(NSUInteger)segment

指定下标设置图片

获取指定下标的图片
指定下标设置标题

获取指定下标的标题

管理分段控件
- (void)insertSegmentWithImage:(UIImage *)image
                       atIndex:(NSUInteger)segment
                      animated:(BOOL)animated
- (void)insertSegmentWithTitle:(NSString *)title
                       atIndex:(NSUInteger)segment
                      animated:(BOOL)animated
@property(nonatomic, readonly) NSUInteger numberOfSegments
- (void)removeAllSegments
- (void)removeSegmentAtIndex:(NSUInteger)segment
                    animated:(BOOL)animated
@property(nonatomic) NSInteger selectedSegmentIndex

指定下标/ 标题 插入分段


指定下标/ 图片  插入图片


分段个数
移除所有分段
移除指定分段

选中某一分段
管理控件的行为和外观
@property(nonatomic, getter=isMomentary) BOOL momentary
@property(nonatomic) UISegmentedControlStyle segmentedControlStyle
- (void)setEnabled:(BOOL)enabled
 forSegmentAtIndex:(NSUInteger)segment
- (BOOL)isEnabledForSegmentAtIndex:(NSUInteger)segment
- (void)setContentOffset:(CGSize)offset
       forSegmentAtIndex:(NSUInteger)segment
- (CGSize)contentOffsetForSegmentAtIndex:(NSUInteger)segment
- (void)setWidth:(CGFloat)width
forSegmentAtIndex:(NSUInteger)segment
- (CGFloat)widthForSegmentAtIndex:(NSUInteger)segment
@property(nonatomic) BOOL apportionsSegmentWidthsByContent

选中时闪一下即表示选中
分段类型 默认不分组
指定下标分段是否可编辑


设置指定下标 内容区域大小


指定下标分段, 设置宽度


If the value of this property is YES, for segments whose width value is 0, the control attempts to adjust segment widths based on their content widths.
自定义外观
@property(nonatomic, retain) UIColor *tintColor
 
初始化方法
- (instancetype)initWithItems:(NSArray *)items
- (void)setTitleTextAttributes:(NSDictionary *)attributes
                      forState:(UIControlState)state
 


实例

//segmentedControl对象的创建
   
UISegmentedControl *segmC = [[UISegmentedControl alloc]initWithItems:@[@"认真",@"负责",@"用心",@"耐心"]];
    segmC.
frame = CGRectMake(30,100,CGRectGetWidth(self.view.bounds) - 60,40);
   
//为分段控制绑定响应方法--segmentControl是通过切换分段来做出响应方法的,所以其对应的事件类型为:UIControlEventValueChanged
    [segmC
addTarget:selfaction:@selector(handleSegmCAction:)forControlEvents:UIControlEventValueChanged];
   
   
//设置被默认被选中的下标  --  分段控件默认都有被选中的分段,分段除了切换操作外还有指示说明操作的作用
    segmC.
selectedSegmentIndex = 0;
    [
self handleSegmCAction:segmC];
   
   
//通过表面着色属性tintColor修改分段控件的外观
    segmC.
tintColor = [UIColor lightGrayColor];  //分段控件默认的背景颜色是无色
   
   
//第2节:为每个分段添加图片
      
for (int i = 0; i < segmC.numberOfSegments; i++) //numberOfSegments:(只读属性)控件中子控件的个数
    {
       
NSString *imaN = [NSString stringWithFormat:@"%d",i +1];
      
       
       
UIImage *image = [[UIImage imageNamed:imaN]imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]; //修该图片的渲染模式,将其设置为原始模式

       
        [segmC
setImage:imageforSegmentAtIndex:i];
    }
   
  
   
   
    [
self.viewaddSubview:segmC];
    [segmC release];
0 0
原创粉丝点击