进击的KFC:UI(六)UISegmentControl,UISlider,NSTimer,UIImageView
2015-11-26 11:35
429 查看
一.pragma mark ————- UISegmentedControl 分段按钮
———————————–继承于UIControl1.初始化
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; } } }
相关文章推荐
- 根据Excel单元格坐标修改单元格内的Value
- <merge/>标签在UI界面中的优化作用
- easyUI 验证控件应用、自定义、扩展验证 手机号码或电话话码格式
- easyui 表单自定义验证 正则表达式验证
- JAVA生成短8位UUID
- UIImageView 序列帧动画及内存优化详解
- 怎么让tableview的section的headerView随着cell一起滑动
- EsayUI + MVC + ADO.NET(工作单元)
- EsayUI + MVC + ADO.NET(仓储基础接口)
- ueditor在使用requirejs时,报ZeroClipboard undefined错误
- 55 Which statement about recovering from the loss of a redo log group is true? A. If the lost redo l
- 53 Which statement about using RMAN stored scripts is true? A. To create and execute an RMA
- NGUI OnDrag 中的Delta
- UE 查找字符串显示列表
- 遇到:Invalid layout of java.lang.String at value 这样的问题,
- UIView的layoutSubviews和drawRect方法何时调用
- android.useDeprecatedNdk=true 添入工程根目录下的新建 gradle.properties 文件
- iOS UITableView 用法二:源码示例
- UltraEdit恢复默认设置(如何彻底删除UE以前的设置)
- light oj 1012 Guilty Prince(dfs )