• UISegmentedControl(转)


    初始化UISegmentedControl

    NSArray *arr = [[NSArray alloc]initWithObjects:@"轻拍",@"长按",@"清扫",@"旋转",@"捏合",@"拖拽", nil];

    //先创建一个数组用于设置标题

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

    //在没有设置[segment setApportionsSegmentWidthsByContent:YES]时,每个的宽度按segment的宽度平分

    segment.frame = CGRectMake(0, 400, 320, 40);

    //设置frame

     

    管理Segment的内容

    [segment setTitle:@"大便" forSegmentAtIndex:3]; 

    //设置下标为3的segment的标题 下标以0开始 IOS里的所有下标都是以0开始

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

    //设置下标为4的segment的图片

     

    管理Segments

    [segment insertSegmentWithImage:[UIImage imageNamed:@"3"] atIndex:2 animated:YES]; //设置图片

    [segment insertSegmentWithTitle:@"ddd" atIndex:0 animated:YES];//设置标题

    [segment numberOfSegments];//得到segment的数量

    [segment removeAllSegments];//移出所有segment

    [segment removeSegmentAtIndex:2 animated:YES];//移出下标为2的segment

    segment.selectedSegmentIndex = 0;//选中第几个segment 一般用于初始化时选中

     

    管理Segment的行为和外观   

    segment.momentary = NO;

    //默认为NO 当设置为YES时,当被选中后,一会儿后不显示被选中状态(最左边的样子),不选中状态即下图的右边几个按钮一样


    segment.segmentedControlStyle = UISegmentedControlStyleBar;

    typedef enum {
       UISegmentedControlStylePlain,
       UISegmentedControlStyleBordered,
       UISegmentedControlStyleBar,
       UISegmentedControlStyleBezeled,
    } UISegmentedControlStyle;

    //设置样式 当为Bordered和Bar时tintColor才有效 下图为tintcolor为红色时的样子

    //Bar样式

    //Bordered

    [segment setEnabled:NO]; //设置segment是否可用 此方法是其父类UIControl的方法

    [segment setEnabled:NO forSegmentAtIndex:2];//设置下标为2的segment不可用

    [segment setWidth:100 forSegmentAtIndex:2]; //这时下表为2的segment的宽度

    [segment setContentOffset:CGSizeMake(10, 10) forSegmentAtIndex:2];//设置内容偏移

    segment.apportionsSegmentWidthsByContent = YES; //是否根据segment的内容改变segment的宽度

    自定义外观

    [segment setTintColor:[UIColor redColor]]; //设置segments的颜色

    [segment setBackgroundImage:[UIImage imageNamed:@""] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];

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

    //设置在某个状态下segments的背景图片

    [segment setTitleTextAttributes:dic forState:UIControlStateNormal];


    NSString *const UITextAttributeFont;                       value: UIFont
    NSString *const UITextAttributeTextColor;                 value: UIColor
    NSString *const UITextAttributeTextShadowColor;       value: UIColor
    NSString *const UITextAttributeTextShadowOffset;      value: NSValue wrapping a UIOffset
        
    NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:[UIColor redColor],UITextAttributeTextColor,[UIFont fontWithName:@"SnellRoundhand-Bold" size:24],UITextAttributeFont ,nil];  

    //设置标题的颜色 字体和大小 阴影和阴影颜色

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

    //当选中不同的segment时,会执行change:方法

  • 相关阅读:
    C#:类的学习
    SilverLight xaml页面跳转方法
    C#对象生命周期(转载)
    jquery常用的方法
    关于Java日期简单应用
    Compilingphpwithcrypt()
    SSI使用详解
    实例解析:从IIS的ASP迁移到APACHE的PHP
    三步搞定phpwind的静态化部署
    Informix Dynamic Server 中的分布式事务
  • 原文地址:https://www.cnblogs.com/hereiam/p/3813844.html
Copyright © 2020-2023  润新知