iOS基础-UIControl及其子类

摘要:
UISegmentedControl的使用UISegmented control是iOS中的一种分段控件。每个片段都可以单击,这相当于继承了几个按钮。通常,我们单击不同的段来连接不同的视图通用方法和属性initWithItems:一种独特的初始化方法,用于创建多个段setTitle:forSegmentAtIndex:set titleselectedSegments,用于带有下标的段

UISegmentedControl的使用

UISegmentedControl是iOS中的分段控件,每个segment都能被点击,相当于继承了若干个button,通常我们会点击不同的segment来接环不同的view

常用方法和属性

initWithItems:独有的初始化方法,用来创建多个分段

setTitle:forSegmentAtIndex:为制定下标的分段设置title

selectedSegmentAtIndex:(property)被选中的segment

tintColor:(property)segmentedControl条的颜色

addTarget:action:forControlEvents:给UISegmentedControl添加事件。其中controlEvent为UIControlEventValueChanged

- (void)viewDidLoad {
    [super viewDidLoad];
#pragma mark  布局
    /*1.初始化分段控件*/
    self.view.backgroundColor = [UIColor colorWithRed:0.94 green:0.50 blue:0.63 alpha:1];
    NSArray *segmentedArray = @[@"1",@"2",@"3",@"4"];
    UISegmentedControl *segmentedControl = [[UISegmentedControl alloc] initWithItems:segmentedArray];
    
    //设置frame
    segmentedControl.frame = CGRectMake(20, 20, 335, 50);
    
    //四种基本样式(已经被淘汰了)
    
    
    //指定下标插入标题
    [segmentedControl insertSegmentWithTitle:@"学习" atIndex:2 animated:NO];
    
    //替换题目
    [segmentedControl setTitle:@"生活" forSegmentAtIndex:1];
    [segmentedControl setTitle:@"红色" forSegmentAtIndex:0];
    [segmentedControl setTitle:@"蓝色" forSegmentAtIndex:1];
    [segmentedControl setTitle:@"灰色" forSegmentAtIndex:2];
    [segmentedControl setTitle:@"绿色" forSegmentAtIndex:3];
    [segmentedControl setTitle:@"下一页" forSegmentAtIndex:4];
    //图片 (会被渲染替换蓝色)
//    [segmentedControl insertSegmentWithImage:[UIImage imageNamed:@"6.png"] atIndex:2 animated:YES];

    //四种基本样式(已经被淘汰了)
    
    //背景颜色
    segmentedControl.tintColor = [UIColor redColor];
    
    [segmentedControl addTarget:self action:@selector(segmentAction:) forControlEvents:UIControlEventValueChanged];
    
    
    
    [self.view addSubview:segmentedControl];
}

#pragma mark  具体方法委托
- (void)segmentAction:(UISegmentedControl *)Seg{
    NSInteger Index = Seg.selectedSegmentIndex;
    NSLog(@"Index %lu",Index);
    switch (Index) {
        case 0:
            [self selectMyView1];
            break;
         case 1:
            [self selectMyView2];
            break;
         case 2:
            [self selectMyView3];
            break;
        case 3:
            [self selectMyView4];
            break;
        case 4:
            [self selectMyView5];
        default:
            break;
    }
    
    
}



#pragma mark 每个按钮的具体方法实现
//1
- (void)selectMyView1{
    self.view.backgroundColor = [UIColor colorWithRed:0.94 green:0.50 blue:0.63 alpha:1];
}
//2
- (void)selectMyView2{
    self.view.backgroundColor = [UIColor colorWithRed:0.30 green:0.52 blue:0.70 alpha:1];
}
//3
- (void)selectMyView3{
    self.view.backgroundColor = [UIColor grayColor];
}
//4
- (void)selectMyView4{
    self.view.backgroundColor = [UIColor colorWithRed:0.20 green:0.80 blue:0.49 alpha:1];
}
//5
- (void)selectMyView5{
//    self.view.backgroundColor = [UIColor colorWithRed:(arc4random() % 200)/100.0 green:(arc4random() % 200)/100.0 blue:(arc4random() % 200)/100.0 alpha:1];
    SecondViewController *svc = [[SecondViewController alloc]init];
    
    [self presentViewController:svc animated:YES completion:^{
        [svc.imageView startAnimating];//进入第二个界面,时的状态
    }];
    
    [svc release];
}

UISlider概述

UISlider是iOS中的滑块控件

通常用于控制视频播放进度,控制音量等

它也是继承与UIControl,滑块提供了一系列连续的值,滑块停在不同位置,获取到滑块上的值也不同

UISlider常用属性

minimumValue:设置滑块的最小值

maximumValue:设置滑块的最大值

value:设置滑块的当前值

minimumTrackTinkColor:定义划过区域的颜色

addTarget:action:forControlEvents:给UISlider添加事件,controlEvent为UIControlEventValueChanged

UIImageView常用属性

image:设置图片

animationImages:设置一组动态图片

animationDuration:设置播放一组动态图片的时间

animationRepeatCount:设置重复次数

startAnimating:开始动画

stopAnimating:结束动画

- (void)viewDidLoad {
#pragma  mark  第二个页面
    [super viewDidLoad];
    self.view.backgroundColor = [UIColor orangeColor];
    NSArray *segmentedArray = @[@"上一页",@"2",@"3",@"4"];
    UISegmentedControl *segmentedControl = [[UISegmentedControl alloc] initWithItems:segmentedArray];
    segmentedControl.frame = CGRectMake(20, 20, 335, 50);
    [segmentedControl addTarget:self action:@selector(click:) forControlEvents:UIControlEventValueChanged];
    [self.view addSubview:segmentedControl];
    
    
    
    //动态图片添加方法
    UIImageView *back = [[UIImageView alloc]initWithFrame:CGRectMake(0, 150, 375, 300)];
    back.image = [UIImage imageNamed:@"2.tiff"];
    [self.view addSubview:back];
    
    
    _imageView = [[UIImageView alloc]initWithFrame:CGRectMake(0, 150, 375, 300)];
    
    NSMutableArray *arr = [[NSMutableArray alloc]init];
    for (int i = 1; i < 15 ; i++) {
        NSString *str = [NSString stringWithFormat:@"%d.tiff",i];
        
        UIImage *image = [UIImage imageNamed:str];
        [arr addObject:image];
    }
    
    _imageView.animationImages = arr;
    

    
    
    
//    _imageView.animationRepeatCount = 0;
//    _imageView.backgroundColor = [UIColor grayColor];
    //动画开始
    
    

    
    [self.view addSubview:_imageView];
    
    
    /*滑块控件*/
     UISlider *slider = [[UISlider alloc]initWithFrame:CGRectMake(30, 500, 315, 30)];
//    slider.backgroundColor = [UIColor grayColor];
    
    slider.minimumValue = 1;
    slider.maximumValue = 5;
    //滑动线条颜色
    slider.minimumTrackTintColor = [UIColor redColor];
    slider.maximumTrackTintColor = [UIColor blackColor];
    slider.thumbTintColor = [UIColor blueColor];
    //滑块设置
    [slider addTarget:self action:@selector(slider1:) forControlEvents:UIControlEventValueChanged];
    //垂直的滑块
//    slider.transform = CGAffineTransformMakeRotation( M_PI * 0.5 );
    //左侧图片
//    slider.minimumValueImage = [UIImage imageNamed:@"61"];
    
    
    
    
    
    [self.view addSubview:slider];
    
    //UISWith
    UISwitch *swt = [[UISwitch alloc]initWithFrame:CGRectMake(170, 75, 30, 20)];
    
    [swt addTarget:self action:@selector(swt:) forControlEvents:UIControlEventValueChanged];
    swt.on = YES;
    [self.view addSubview:swt];
    
    //UIStepper
    UIStepper *step = [[UIStepper alloc]init];
    step.frame = CGRectMake(170, 110, 30, 20);
    [step addTarget:self action:@selector(stepClick:) forControlEvents:UIControlEventValueChanged];
    
    [self.view addSubview:step];


    UILabel *label = [[UILabel alloc] init];
    label.frame = CGRectMake(110, 110, 60, 27);
    label.backgroundColor = [UIColor whiteColor];
    label.tag = 1;
    
    [self.view addSubview:label];
    
    
    [step release];
    [label release];
    [swt release];
    [back release];
    [slider release];
    
    
    
}

#pragma mark  Slider方法实现
//1.滑动改变图片播放速度
- (void)slider1:(UISlider *)slider{
    _imageView.animationDuration = 5-slider.value;
    [_imageView startAnimating];
    NSLog(@"%.2f",slider.value);
}


//开关
- (void)swt:(UISwitch *)swt{
    if ((swt.on == YES)) {
        [_imageView startAnimating];
    }else
        [_imageView stopAnimating];
    
}

//计数器
- (void)stepClick:(UIStepper *)step{
    UILabel *v = (UILabel *)[self.view viewWithTag:1];
    
    v.text = [NSString stringWithFormat:@"%.2f",step.value];
}


免责声明:文章转载自《iOS基础-UIControl及其子类》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Linux netstat命令详解和使用例子(显示各种网络相关信息)数据管理(六)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

postgresql笔记

一旦任何有价值的对象被转移到新所有者,可以使用DROPOWNED命令删除被删除角色所拥有的任何剩余对象。此外,DROPOWNED不会删除整个数据库或表空间。因此,如果角色有任何尚未转移到新所有者的数据库或表空间,则需要手动删除它们。DROPOWNED还将注意到,对于不属于目标角色的对象,删除授予目标角色的任何特权。因为REASSIGNOWNED不会接触这些对...

DB2字符函数简介及使用

Param2可以是编码单元16-16位UTF-16编码,也就是说,字符串表示为16位UTF-18编码字符串。Codeunits32-32位UTF-32编码,即字符串表示为32位UTF 32编码字符串。请注意,定义为FORBITDATA的字符串不能转换为图形字符。如果length<length,则来自的原始字符串短于结果中的长度。...

go语言游戏服务端开发(一)——架构

本教程以Go语言为例。特别是游戏服务进程有更新上线时,稳定性还没有被线上并发验证,宕机的几率会增加,数据丢失的风险也会增加。为了减轻风险,可以考虑把数据缓存跟服务进程分离。对于轻中度游戏,游戏的通信量不会很多,没必要每个分服都有一个长连接socket网关。假设一个分服同时连接服务器的客户端有5k,一台机器的socket网关能支持5w个玩家。因此网关需要参与服...

【Mybatis-Plus】使用updateById()、update()将字段更新为null或者空

我检查了以下项目的配置,发现字段级别设置为NOT_由空引起。2不为空,但默认更新策略为Not_ NULL:解决方案1。设置全局字段策略加:classpath:#字段策略IGNORED:NOT_NULL:NOT_EMPTY:NOT_Null2。为所需字段设置单独的字段策略很麻烦。...

mongodb创建用户密码

测试服务的mongodb经常被删除,因为没有设置帐户密码,相应的端口也不受限制。这是由于mongodb的默认机制。如果尚未创建用户密码,则可以创建一个用户,然后打开它。在conf中启动身份验证模式,然后重新启动mongodb以使其生效。...

高通平台UEFI有关介绍

高通平台UEFI有关介绍背景我需要在高通平台上学习点亮LCD,目前通过同事在别的平台的配置代码,我已经将kernel部分的屏幕点亮了;剩余的工作量就在BP侧,也就是系统刚开机的那一段时间。有关文档:https://www.cnblogs.com/we-hjb/p/9800627.htmlhttps://blog.csdn.net/u014089131/art...