• UISegmentedControl、UISlider、UISwitch


      1 #import "AppDelegate.h"
      2 
      3 @interface AppDelegate ()
      4 {
      5     UISlider* lider;
      6 }
      7 
      8 @end
      9 
     10 @implementation AppDelegate
     11             
     12 
     13 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
     14     
     15     self.window = [[UIWindow alloc]initWithFrame:[[UIScreen mainScreen]bounds]];
     16     self.window.backgroundColor = [UIColor whiteColor];
     17     [self.window makeKeyAndVisible];
     18     
     19 #pragma mark - UISEGMENTEDCONTROL
     20     // 创建,并初始化设置各个标题,有多少个标题就代表有多少个选项
     21     UISegmentedControl* segmented = [[UISegmentedControl alloc]initWithItems:@[@"Demo1",@"Demo2",@"Demo3",@"Demo4"]];
     22     // 设置位置及大小
     23     [segmented setFrame:CGRectMake(10, 50, 300, 40)];
     24     // 根据下标索引单独指定设置标题
     25     [segmented setTitle:@"Demo3" forSegmentAtIndex:0];
     26     // 根据下标索引单独指定设置图片
     27     [segmented setImage:[UIImage imageNamed:@"lan.png"] forSegmentAtIndex:2];
     28     // 指定索引插入选项并设置图片
     29     [segmented insertSegmentWithImage:[UIImage imageNamed:@"inamgName"] atIndex:1 animated:YES];
     30     // 指定索引插入选项并设置标题
     31     [segmented insertSegmentWithTitle:@"Demo5" atIndex:3 animated:YES];
     32     // 移除指定索引的选项
     33     [segmented removeSegmentAtIndex:0 animated:YES];
     34     // 设置指定索引的宽度
     35     [segmented setWidth:10 forSegmentAtIndex:2];
     36     // 设置指定选项中图片等,左上角的位置
     37     [segmented setContentOffset:CGSizeMake(10.0, 10.0) forSegmentAtIndex:1];
     38     
     39     // 获取指定索引选项的图片 imageForSegmentAtIndex
     40     UIImageView* imageAtIndex = [[UIImageView alloc]initWithImage:[segmented imageForSegmentAtIndex:2]];
     41     imageAtIndex.frame = CGRectMake(60, 100, 30, 30);
     42 //    UIImage* imageAtIndex = [[UIImage alloc]init];
     43 //    imageAtIndex = [segmented imageForSegmentAtIndex:2];
     44 
     45     // 获取指定索引的标题 titleForSegmentAtIndex
     46     UILabel* titleAtIndex = [[UILabel alloc]initWithFrame:CGRectMake(100, 100, 30, 30)];
     47     titleAtIndex.text = [segmented titleForSegmentAtIndex:1];
     48     [self.window addSubview:titleAtIndex];
     49     
     50     // 获取总选项数 segmented.numberOfSegments
     51     UILabel* unmber = [[UILabel alloc]initWithFrame:CGRectMake(140, 100, 30, 30)];
     52     unmber.text = [NSString stringWithFormat:@"%d",segmented.numberOfSegments];
     53     [self.window addSubview:unmber];
     54     
     55     // 获取指定索引选项的宽度widthForSegmentAtIndex:
     56     UILabel* widthAtIndex = [[UILabel alloc]initWithFrame:CGRectMake(180, 100, 70, 30)];
     57     widthAtIndex.text = [NSString stringWithFormat:@"%f",[segmented widthForSegmentAtIndex:2]];
     58     [self.window addSubview:widthAtIndex];
     59     // 设置默认选择项索引
     60     segmented.selectedSegmentIndex = 1;
     61     
     62     // 设置标题颜色
     63     segmented.tintColor = [UIColor redColor];
     64     
     65     // 设置样式 (iOS7.0以后弃用了)
     66     // segmented.segmentedControlStyle = UISegmentedControlStylePlain;
     67     //UISegmentedControlSegmentCenter
     68     
     69     // 设置在点击后是否恢复原样
     70     segmented.momentary = YES;
     71     // 是否可以连续点击
     72     segmented.multipleTouchEnabled = YES;
     73     // 设置指定索选项不可选
     74     [segmented setEnabled:NO forSegmentAtIndex:4];
     75     
     76     // 判断指定索引是否可选
     77     BOOL enableFlag = [segmented isEnabledForSegmentAtIndex:3];
     78     NSLog(@"%d",enableFlag);
     79     
     80     // 移除所有选项
     81     [segmented removeAllSegments];
     82     
     83     /* UISegmentedControl控件的一些自定义样式 */
     84     // 设置背景图片及状态
     85     [segmented setBackgroundImage:[UIImage imageNamed:@"imageName1"] forState:UIControlStateSelected barMetrics:UIBarMetricsDefault];
     86     [segmented setBackgroundImage:[UIImage imageNamed:@"imageName2"] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
     87     
     88     // UITextAttributeTextColor  UITextAttributeTextShadowColor  UITextAttributeFont等iOS7.0以后被弃用 改用为 NSForegroundColorAttributeName NSFontAttributeName  NSShadowAttributeName
     89     //NSDictionary* dic = [NSDictionary dictionaryWithObjectsAndKeys:[UIColor redColor],UITextAttributeTextColor,[UIFont systemFontOfSize:15],UITextAttributeFont,[UIColor clearColor],UITextAttributeTextShadowColor, nil];
     90     NSDictionary* dic = [NSDictionary dictionaryWithObjectsAndKeys:[UIColor redColor],NSForegroundColorAttributeName,[UIFont systemFontOfSize:15],NSFontAttributeName,[UIColor clearColor],NSShadowAttributeName, nil];
     91     [segmented setTitleTextAttributes:dic forState:UIControlStateNormal];
     92 
     93     
     94     // 监听事件
     95     [segmented addTarget:self action:@selector(dian:) forControlEvents:UIControlEventValueChanged];
     96     
     97     // 自定义UIBarButtonItem,
     98     UIBarButtonItem* segButton = [[UIBarButtonItem alloc]initWithCustomView:segmented];
     99     // 添加到导航栏中
    100     // self.navigationItem.rightBarButtonItem = segButton;
    101     
    102     // 添加到视图上
    103     [self.window addSubview:segmented];
    104 
    105 
    106 #pragma mark - UISLIDER
    107     // UISlider---滑杆,UISlider不可以改变高度
    108     // 新建slider 并初始化位置及大小,注意:UISlider的高度可以随便设置,不可以为0,为0时滑块滑不动
    109     
    110     lider = [[UISlider alloc]initWithFrame:CGRectMake(20, 150, 180, 30)];
    111     // 设置背景颜色
    112     lider.backgroundColor = [UIColor purpleColor];
    113     // 不透明度
    114     lider.alpha = 0.9;
    115     // 设置标签
    116     lider.tag = 1;
    117     
    118     /* 创建完毕的同时我们要设置好滑块的范围,如果你没有设置,那么会使用默认的0.0到1.0之间的值
    119      UISlider提供了两个属性来设置范围:minimumValue和maximumValue
    120      */
    121     // 设置lider所能滑动到的最小值(下限)
    122     lider.minimumValue = 0;
    123     // 设置lider所能滑动到的最大值(上限)
    124     lider.maximumValue = 50;
    125     // 同时你也可以为滑块设定一个当前值(初始值)
    126     lider.value = 25;
    127     // [lider setValue:25 animated:YES];
    128     
    129     // 得到slider的值
    130     float value = lider.value;
    131     
    132     // 设置了会减小滚动区域的宽度,但整个slider的宽度不变
    133     lider.minimumValueImage = [UIImage imageNamed:@"设置slider已滑过的背景图片"];
    134     lider.maximumValueImage = [UIImage imageNamed:@"设置slider为滑动的背景图片"];
    135     
    136     // 设置响应Slider的响应方法
    137     [lider addTarget:self action:@selector(sliderValueChange:) forControlEvents:UIControlEventValueChanged];
    138     // 默认值为YES,设置为YES只要滑块滚动就会触发change方法,设置为NO只要当滑块停止移动时才会触发change方法
    139     lider.continuous = YES;
    140 
    141 #pragma mark - 滑动条
    142     /* 滑动条 */
    143     /* 两端添加图片:滑块可以在任何一段显示图像。添加图像后会导致滑动条缩短,所以记得要在创建的时候增加滑块的宽度来适应图像 */
    144     // 设置最小区域的图片
    145     [lider setMinimumTrackImage:[UIImage imageNamed:@"设置滑块已滑过的滑动条背景图片,最好宽度和slider一样"] forState:UIControlStateNormal];
    146     // 设置最大区域的图片
    147     [lider setMaximumTrackImage:[UIImage imageNamed:@"设置滑块未滑过的滑动条背景图片,最好宽度和slider一样"] forState:UIControlStateNormal];
    148     /* 你可以根据滑块的各种不同状态显示不同的图像,下面是可用状态
    149      UIControlStateNormal    // 正常
    150      UIControlStateHighlighted // 高亮
    151      UIControlStateDisabled // 禁用
    152      UIControlStateSelected // 选择
    153      */
    154     // 得到当前滑块已滑过的图片,如果有的话
    155     UIImage* image = [[UIImage alloc]init];
    156     image = lider.currentMinimumTrackImage;
    157     // 得到当前滑块未滑过的图片,如果有的话
    158     image = lider.currentMaximumTrackImage;
    159     // 设置滑块已滑过的滑条颜色,如果设置了左边的图片就不会显示
    160     lider.minimumTrackTintColor = [UIColor redColor];
    161     // 设置滑块未滑过的滑条颜色,如果设置了右边的图片就不会显示
    162     lider.maximumTrackTintColor = [UIColor greenColor];
    163 
    164 #pragma mark - 滑动块
    165     /* 滑动块 */
    166     // 普通状态
    167     [lider thumbImageForState:UIControlStateNormal];
    168     // 设置高亮状态的滑块样式
    169     [lider setThumbImage:[UIImage imageNamed:@"设置滑块样子的图片"] forState:UIControlStateHighlighted];
    170     // 设置滑块的颜色,如果设置了滑块的样式图片就不会显示
    171     lider.thumbTintColor = [UIColor greenColor];
    172     
    173     
    174     // 添加到父视图
    175     [self.window addSubview:lider];
    176     // 添加到导航栏
    177     // [self.navigationItem.titleView addSubview:lider];
    178     
    179     
    180     
    181 #pragma mark - UISWITCH
    182     // 创建switc 并初始化设置位置及大小
    183     UISwitch* switc = [[UISwitch alloc]initWithFrame:CGRectMake(20, 220, 100, 100)];
    184     // 设置背景颜色
    185     switc.backgroundColor = [UIColor whiteColor];
    186     // 设置UISwitch的初始化状态,设置初始化为NO的一边
    187     switc.on = YES;
    188     [switc setOn:YES animated:YES];
    189     // 设置响应事件
    190     [switc addTarget:self action:@selector(switchIsChange:) forControlEvents:UIControlEventValueChanged];
    191     
    192     // 开关控件关闭状态边框颜色、(外部颜色)
    193     switc.tintColor = [UIColor redColor];
    194     // 开关控件切换槽颜色
    195     switc.onTintColor = [UIColor greenColor];
    196     // 开关控件圆按钮颜色
    197     switc.thumbTintColor = [UIColor purpleColor];
    198     
    199     // 设置控件关闭状态图片
    200     switc.onImage = [UIImage imageNamed:@"on"];
    201     // 设置控件打开状态图片
    202     switc.offImage = [UIImage imageNamed:@"off"];
    203     
    204     // 添加到视图
    205     [self.window addSubview:switc];
    206 
    207     return YES;
    208 }
    209 // UISegmentedControl 响应事件
    210 - (void)dian:(UISegmentedControl*)segment{
    211     NSInteger index = segment.selectedSegmentIndex;
    212     switch (index) {
    213         case 0:{
    214             NSLog(@"Dome1");
    215             break;
    216         }case 1:{
    217             NSLog(@"Dome2");
    218             break;
    219         }case 2:{
    220             NSLog(@"Dome3");
    221             break;
    222         }case 3:{
    223             NSLog(@"Dome4");
    224             break;
    225         }
    226         default:
    227             break;
    228     }
    229 }
    230 // UISlider 响应事件
    231 - (void)sliderValueChange:(UISlider*)sl{
    232     NSLog(@"UISlider........");
    233     if ([sl isEqual:lider]) {
    234         NSLog(@"ValureUISlider.......");
    235     }
    236 }
    237 // UISwitch 响应事件
    238 - (void)switchIsChange:(UISwitch*)sw{
    239     NSLog(@"UISwitch......");
    240     if (sw.isOn) {
    241         NSLog(@"The switch is turned on");
    242     }else{
    243         NSLog(@"The switch is turned off");
    244     }
    245 }
  • 相关阅读:
    AngularJS---核心特性
    前后端分离原理
    吴军 见识 读后感
    CSS 颜色名称和CSS 颜色十六进制值
    springmvc+jsp引用本地图片文件
    Eclipse 构建Maven项目--普通web项目 复制另外一个项目的配置文件导致的问题
    html input type=date 赋值问题 必须yyyy-mm-dd格式
    解决eclipse中运行web项目时弹出的"Port 8080 required by Tomcat 9.0 Server at localhost is already in use...
    解决 Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile (default-compile)
    SpringMVC HelloWorld实例开发及部署
  • 原文地址:https://www.cnblogs.com/WillingToAsk1946zzh/p/4482979.html
Copyright © 2020-2023  润新知