UISegmentedControl的常用属性

UISegmentedControl集成关系:UISegmentedControl:UIControl:UIView:UIResponder:NSObject

- (void)viewDidLoad
{
    [super viewDidLoad];

    /**
     1、初始化UISegmentedControl控件
        - initWithItems:
     */
    UISegmentedControl *segmented = [[UISegmentedControl alloc]initWithItems:@[@"家庭宽带",@"企业宽带"]];
    segmented.frame = CGRectMake(0, 50, 320, 45);
    [self.view addSubview:segmented];                //见图1



    /**
     2、管理Segment内容
        - setImage:forSegmentAtIndex:           根据索引 设置标签图片
        - imageForSegmentAtIndex:               根据索引 获取标签图片

        - setTitle:forSegmentAtIndex:           根据索引 设置标签文字
        - titleForSegmentAtIndex:               根据索引 获取标签文字
     */
    [segmented setImage:[UIImage imageNamed:@"fan-128"] forSegmentAtIndex:0];
    [segmented setImage:[UIImage imageNamed:@"tv"] forSegmentAtIndex:1];        //见图2

    [segmented setTitle:@"风扇" forSegmentAtIndex:0];
    [segmented setTitle:@"电视" forSegmentAtIndex:1];                           //见图3



    /**
     3、管理Segment
        .numberOfSegments                       获取标签个数:(只读)
        .selectedSegmentIndex                   设置和获取当前选中的标签索引

        - insertSegmentWithImage:atIndex:animated:  插入图片标签 在index位置
        - insertSegmentWithTitle:atIndex:animated:  插入文字标签 在index位置

        - removeAllSegments                         删除所有标签
        - removeSegmentAtIndex:animated:            删除index标签
     */
    NSLog(@"%lu",(unsigned long)segmented.numberOfSegments);
    [segmented setSelectedSegmentIndex:1];                                     
    [segmented addTarget:self action:@selector(segmentedControllerAction:) forControlEvents:UIControlEventValueChanged];

    [segmented insertSegmentWithTitle:@"摄像头摄像头摄像头摄像头摄像头" atIndex:2 animated:YES]; //见图4
    [segmented insertSegmentWithImage:[UIImage imageNamed:@"图层-2"] atIndex:3 animated:YES];//见图5

    [segmented removeSegmentAtIndex:3 animated:YES];                                        



    /**
     4、管理Segment的事件  和  外观
        .momentary                             设置是否保持选中状态,默认NO。注意:如果是YES,Segment点击完后不会显示选择状态也将不再更新selectedSegmentIndex的值
        .segmentedControlStyle                 注意:这个属性iOS7已经废弃。设置控件风格

        - setEnabled:forSegmentAtIndex:        根据索引 设置标签是否有效(默认有效)
        - isEnabledForSegmentAtIndex:          根据索引 获取标签是否有效

        .apportionsSegmentWidthsByContent      设置标签宽度是否随内容自适应(默认NO)

        - setWidth:forSegmentAtIndex:          根据索引 设置标签的宽度
        - widthForSegmentAtIndex:              根据索引 获取标签的宽度

        - setContentOffset:forSegmentAtIndex:  根据索引 设置标签内容的偏移量
        - contentOffsetForSegmentAtIndex:      根据索引 获取标签内容的偏移量
     */
    [segmented setMomentary:YES];                                         //见图6
    [segmented setEnabled:NO forSegmentAtIndex:1];                        //见图7

    [segmented setApportionsSegmentWidthsByContent:YES];                  //见图8

    [segmented setWidth:80.0 forSegmentAtIndex:1];

    [segmented setContentOffset:CGSizeMake(-10, -10) forSegmentAtIndex:1];//见图9




    /**
     5、个性化外观
     .tintColor

     - setBackgroundImage:forState:barMetrics:                  设置某状态下segment的背景图案
     - backgroundImageForState:barMetrics:

     - setContentPositionAdjustment:forSegmentType:barMetrics:  自行设置标签内容的偏移量
     - contentPositionAdjustmentForSegmentType:barMetrics:
                                                                 UISegmentedControlSegmentAny = 0,//所有标签都受影响
                                                                 UISegmentedControlSegmentLeft = 1,  //只有左边部分受到影响
                                                                 UISegmentedControlSegmentCenter = 2, // 只有中间部分受到影响
                                                                 UISegmentedControlSegmentRight = 3,  // 只有右边部分受到影响
                                                                 UISegmentedControlSegmentAlone = 4,  // 在只有一个标签的时候生效

     - setDividerImage:forLeftSegmentState:rightSegmentState:barMetrics:    设置标签之间分割线的图案
     - dividerImageForLeftSegmentState:rightSegmentState:barMetrics:

     - setTitleTextAttributes:forState:         通过字符串属性字典 设置标签标题
     - titleTextAttributesForState:
     */

    segmented.tintColor = [UIColor redColor];//中间分割线的颜色               //见图10

    [segmented setBackgroundImage:[UIImage imageNamed:@"homeVC_04"] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];//正常背景图
    [segmented setBackgroundImage:[UIImage imageNamed:@"homeVC_05"] forState:UIControlStateSelected barMetrics:UIBarMetricsDefault];//选中后背景图


    NSDictionary *normalTitleAttributes = @{NSForegroundColorAttributeName: [UIColor blueColor],
                                                       NSFontAttributeName: [UIFont systemFontOfSize:15]};
    NSDictionary *selectedTitleAttributes = @{NSForegroundColorAttributeName: [UIColor whiteColor],
                                                         NSFontAttributeName: [UIFont boldSystemFontOfSize:15]};
    [segmented setTitleTextAttributes:normalTitleAttributes forState:UIControlStateNormal];     //正常字体的属性
    [segmented setTitleTextAttributes:selectedTitleAttributes forState:UIControlStateSelected]; //选中后字体的属性

}
-(void)segmentedControllerAction:(UISegmentedControl *)segmentedControl
{
    switch (segmentedControl.selectedSegmentIndex)
    {
        case 0:

            break;

        default:
            break;
    }
}

这里写图片描述图1
这里写图片描述图2
这里写图片描述图3
这里写图片描述图4
这里写图片描述图5
这里写图片描述图6
这里写图片描述图7
这里写图片描述图8
这里写图片描述图9
这里写图片描述图10

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值