您的位置:首页 > 产品设计 > UI/UE

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

2015-11-26 11:35 429 查看

一.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;
}
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: