UI第六课

来源:互联网 发布:开淘宝网店怎么弄客服 编辑:程序博客网 时间:2024/06/05 17:44

主要内容:UIControl及其子类(UISegmentedControl、UISlider、UIImageView的使用)

一、UISegmentedControl(分段控件)的用法

       示例:

       // 创建对象
       UISegmentedControl *segmentedControl = [[UISegmentedControl alloc] initWithItems:@[@“登录”, @“注册”, @“找回密码”]]; // 初始化时加入item


       // 设置大小和位置
       segmentedControl.frame = CGRectMake(20, 20, 280, 30);


       // 设置选中的颜色
       segmentedControl.tintColor = [UIColor redColor];


       // 设置默认选中项,一般是从0开始
       segmentedControl.selectedSegmentedIndex = 1;


       // 设置样式
       segmentedControl.segmentedControlStyle = UISegmentControlStylePlain;
       /*
                 typedef NS_ENUM(NSInteger, UISegmentedControlStyle) {
                            UISegmentedControlStylePlain,     // large plain
                            UISegmentedControlStyleBordered,  // large bordered
                            UISegmentedControlStyleBar,       // small button/nav bar style.tintable
                            UISegmentedControlStyleBezeled,   // DEPRECATED. Do not use this style.
                 };
       */


       // 设置点击后是否回归原样,默认是NO,不恢复
      segmentedControl.momentary = NO;


       // 根据Index设置名称  
      [segmentedControl setTitle:@"NO1" forSegmentAtIndex:0];
      [segmentedControl setTitle:@"NO2" forSegmentAtIndex:1];
      [segmentedControl setTitle:@"NO3" forSegmentAtIndex:2];
      [segmentedControl setTitle:@"NO5" forSegmentAtIndex:3];


      // 根据索引位置图片
      [segmentedControl setImage:[UIImage imageNamed:@“b.jpg”] forSegmentAtIndex:2];


      / / 在指定位置插入一个,并使用动画
      [segmentedControl insertSegmentWithTitle:@"KO" atIndex:2 animated:YES]; 


      // 指定索引移除一个,使用动画
      [segmentedControl removeSegmentAtIndex:1 animated:YES]; 


      // 设置指定索引位置的宽度
      [segmentedControl setWidth:100 forSegmentAtIndex:1];


      // 根据索引设置文字的位置
      [segmentedControl setContentOffset:CGSizeMake(5.0, -5) forSegmentAtIndex:1]; 


      // 获取指定索引上显示的文字 NO1
      NSLog(@"%@", [segmentedControl titleForSegmentAtIndex:0]); 


       // 获取总共有多少项
       NSLog(@"%u", segmentedControl.numberOfSegments); 


       // 根据索引获取那一项的宽度
       NSLog(@"%f", [segmentedControl widthForSegmentAtIndex:1]);


       // 判断索引项是否可选
       NSLog(@"%i", [segmentedControl isEnabledForSegmentAtIndex:2]);


        // 设置索引项不可选
        [segmentedControl setEnabled:NO forSegmentAtIndex:2]; 
    
        // 添加监听事件
       [segmentedControl addTarget:self action:@selector(segmentedControlAction:) forControlEvents:UIControlEventValueChanged]; 
    
        // 移除其中全部项
       [segmentedControl removeAllSegments]; 


       // 添加到View上,并释放内存
       [self.view addSubview:segmentedControl];
       [segmentedControl release]; 
       segmentedControl = nil;


       #pragma mark - 实现oneSegmentedControl的监听事件
       - (void)segmentedControlAction:(UISegmentedControl *) sender {

       // 获取当前的选中项的索引值
       NSUInteger index = sender.selectedSegmentIndex;

        // 判断索引值
         switch (index) {
                case 0:
                      NSLog(@"第一个选项被选中");
                      break;
                case 1:
                      NSLog(@"第二个选项被选中");
                      break;
                case 2:
                      NSLog(@"第三项被选中");
                      break;
                case 3:
                       NSLog(@"第四项被选中");
                       break;
               default:
                      break;
               }
         }

二、UISlider滑竿

        UISlider是iOS中的滑块控件

        通常用于控制视频播放控制音乐等

        示例:

             // 创建对象
             UISlider *slider = [[UISlider alloc] init];

             // 设置位置和大小
             slider.frame = CGRectMake(20, 50, 260, 30);

             // 设置最小值
             slider.minimumValue = 0;

            // 设置最大值
            slider.maximumValue = 200;

           // 设置初始值,即小圆球初始在的位置(注意:如果要设置初始值的话,应该再定义了最大值、最小值之后再定义,否则没有效果)
           slider.value = 30;

           // 设置背景颜色
           slider.backgroundColor = [UIColor redColor];

           // 设置透明度
           slider.alpha = 0.6;

           // 设置标签,常用于委托
           slider.tag = 1001;

           // 给slider添加事件
          [slider addTag:self action:@selector(sliderAction:) forControlEvents:UIControlEventValueChange];

           // 自定义slider
           1、先清除背景色
           slider.background = [UIColor clearColor];

            2、添加最小值、最大值图片
            [slider setMinimumTrackImage:[UIImage imageNamed:@“min.png”]];

            [slider setMaximumTrackImage:[UIImage imageNamed:@“max.png”]];

            // 添加到View上并释放内存
            [self.view addSubview:slider];
            [slider release];
            slider = nil;   

三、UIControl的作用

       UIControl是所有控制控件(如UIButton、UISlider、UISegmentedControl等)的基类

       注意:只要根控制有关的控件都是继承与该类

       核心功能:为控制控件通过addTarget:action:forControlEvents:方法来添加事件

                         通过removeTarget:action:forControlEvents:来移除事件

四、继承关系图


0 0