进击的KFC:UI(六)UISegmentControl,UISlider,NSTimer,UIImageView

来源:互联网 发布:js new做了什么 编辑:程序博客网 时间:2024/05/29 15:04

一.pragma mark ————- UISegmentedControl 分段按钮

———————————–继承于UIControl
1.初始化
UISegmentedControl seg = [UISegmentedControl alloc] initWithItems:(NSArray )
注意这个初始化用到的数组里的元素 必须是字符串 或者 镂空图

  (1)字符串数组初始化  NSArray *itemArray = @[@"你好",@"KFC",@"再见"];  //   分段按钮  UISegmentControl *segmentControl = [[UISegmentControl alloc] initWithItems:itemArray];  segmentControl.frame = CGRectMake(20,100,300,50);  // 设置属性  // 设置默认的选中第2个  segmentControl.selectedSegmentIndex= 1;  // 修改旋转状态的 填充 颜色  segmentControl.tintColor = [UIColor blackColor];  // 修改中间段的宽度 (两边按钮的宽度会自动缩短)  [segmentControl setWidth:200 forSegmentAtIndex:1];  // 为指定下标的分段设置标题  [segmentControl setTitle:@"M" forSegmentAtIndex:1];(2)// 用图片来初始化    // 镂空图:能够把背景的颜色,在轨迹上透出来    // 选中状态下,镂空图能显示不选中状态下的颜色    // 不选中状态下,镂空图能显示选中状态下的颜色     NSArray *imageArray = [NSArray arrayWithObjects:[UIImage imageNamed:@"friend"],[UIImage imageNamed:@"02-redo"],[UIImage imageNamed:@"03-loopback"],nil];     // 其他属性的设置和上面一致    // 添加一个点击时间 (核心方法)    // 分割控件 添加方法 选择 ValueChanged(监测角标,索引高度变化)    [segmentControl setTarget:self action:@selector:(segmentControlAction:) forControlEvents:(UIControlEventValueChanged)];

二.pragma mark —- UISlider 滑块控件

———————————–继承UIControl

// 先设置成属性@property(retain,retain)UISlider *slider;// 初始化self.slider = [[UISlider alloc]initWithFrame:CGRectMake(20,100,300,50)];// 设置属性// 设置背景颜色self.slider.backgroundColor = [UIColor greenColor];// 设置轨迹颜色self.slider.minimumTrackTintColor = [UIColor redColor];  // 左侧颜色self.slider.minimumTrackTintColor = [UIColor greenColor]; // 右侧颜色// 设置滑块的填充色self.slider.thumbTintColor = [UIColor orangeColor] // 设置图片// 设置滑块在不同状态下的图片[self.slider setThumbImage:[UIImage imageNamed:@"jinru"] forState:(UIControlStateNormal)];[self.slider setThumbImage:[UIImage imageNamed:@"friend"]forState:(UIControlStateHighlighted)];[self.slider setThumbImage:[UIImage imageNamed:@"02-redo"forState:(UIControlStateSelected)];// 添加最小值最大值两端的图片self.slider.minimumValueImage = [UIImage imageNamed:@"02-redo"];self.slider.maximumValueImage = [UIImage imageNamed:@"02-redo"];// 设置初值,最大值,最小值self.slider.minimumValue = 0;self.slider.maximumValue = 10;self.slider.value = 1;self.slider.continuous = NO; // 滑动时不连续显示数值,只在显示最后停留位置处的值// 添加响应事件[self.slider addTarget:self action:@selector(sliderAction:)forControlEvents:(UIControlEventValueChanged)];// 添加显示[self.view addSubView:self.slider];

三.pragma mark ———-UIImageView

// ImageView动画 (跑图) self.imageView = [[UIImageView alloc] initWithFrame:CGRectMake(20, 200, 340, 400)];    self.imageView.backgroundColor = [UIColor redColor];    [self.view addSubview:self.imageView];    // 构建一个图片数组 (找一组图片拉进工程,注意把图片名字改成1 2 3...10)    self.onePunch = [NSMutableArray array];    for (int i = 1; i < 11; i++) {        [self.onePunch addObject:[UIImage imageNamed:[NSString stringWithFormat:@"%d.jpg",i]]];    }    // 设置imageView播放动画的数组    self.imageView.animationImages = self.onePunch;    // 设置重复的次数 (0代表无限次)    self.imageView.animationRepeatCount = 0;    // 设置完整播放一次的时间(秒)(10秒放10张图,所以改变animationDuration的值,可以改变播放的速度);    self.imageView.animationDuration = 10;    // 开始动画    [self.imageView startAnimation];

四.pragma mark —- NSTimer计时器

- (void)viewDidLoad {    [super viewDidLoad];    // Do any additional setup after loading the view.    // 创建一个button    self.button = [[UIButton alloc] initWithFrame:CGRectMake(100, 100, 200, 100)];    self.button.backgroundColor = [UIColor blackColor];    [self.button setTitle:@"发送验证码" forState:(UIControlStateNormal)];    [self.button addTarget:self action:@selector(click:) forControlEvents:(UIControlEventTouchUpInside)];    [self.view addSubview:self.button];    // 给一个时间的初值    self.number = 5;}- (void)click:(UIButton *)button{    // 倒计时:核心 每隔一秒 时间递减    // 计时器类(可以实现每隔多少时间 调用一个方法),用类方法来初始化    // (NSTimeInterval) 时间间隔    // 每隔1秒钟调用timer:这个方法    NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(timer:) userInfo:@"button倒计时" repeats:YES];    // 计时器开始    [timer fire];    // 关闭按钮交互    self.button.userInteractionEnabled = NO;}- (void)timer:(NSTimer *)timer{    // 改button的标题进行倒计时        NSString *Buttontitle = [NSString stringWithFormat:@"%ld秒",self.number--];        [self.button setTitle:Buttontitle forState:(UIControlStateNormal)];   // 判断倒计时 是否结束 标题是否为0    {        if ([[self.button titleForState:(UIControlStateNormal)] isEqualToString:@"0秒"]) {            // 停止计时器            [timer invalidate];            [self.button setTitle:@"重新发送验证码" forState:(UIControlStateNormal)];            // 把交互再打开 可以重新点击            self.button.userInteractionEnabled = YES;            // 重置时间,不然会从继续从-1开始计时            self.number = 5;        }    }}
0 0
原创粉丝点击