最近短信服务商要求公司的app在获取短信验证码时加上校验码,目前比较流行的是采用类似滑动解锁的方式,我们公司采取的就是这种方式,设计图如下所示:
这里校验内部的处理逻辑不作介绍,主要分享一下界面效果的实现, 下面贴出代码:
先子类化UISlider
#import <UIKit/UIKit.h> #define SliderWidth 240 #define SliderHeight 40 #define SliderLabelTextColor [UIColor colorWithRed:193/255.0 green:193/255.0 blue:193/255.0 alpha:1] #define SliderLabelBorderColor [UIColor colorWithRed:193/255.0 green:193/255.0 blue:193/255.0 alpha:1].CGColor #define SliderMinimumTrackTintColor [UIColor redColor] #define SliderLabelFont 14 #define SliderLabelText @"滑动解锁/获取验证码" #define ThumbImageWidth 40 #define ThumbImageHeight 40 @interface CheckCodeSlider : UISlider @end //******************************************************* #import "CheckCodeSlider.h" @implementation CheckCodeSlider //覆写父类UISlider的方法改变滑条frame - (CGRect)trackRectForBounds:(CGRect)bounds{ return CGRectMake(0, 0, SliderWidth, SliderHeight); } @end 再实例化CheckCodeSlider,这里随便在一个ViewController里写的 #import "ViewController.h" #import "CheckCodeSlider.h" @interface ViewController (){ UIImageView *imgView; } @property (nonatomic ,strong)CheckCodeSlider *slider; @property (nonatomic ,strong)UILabel *label; @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; self.view.backgroundColor = [UIColor whiteColor]; [self createSlider]; } - (void)createSlider{ _slider = [[CheckCodeSlider alloc]initWithFrame:CGRectMake(0, 0, SliderWidth, SliderHeight)]; _slider.center = self.view.center; _slider.minimumTrackTintColor = [UIColor clearColor]; _slider.maximumTrackTintColor = [UIColor clearColor]; _slider.layer.masksToBounds = YES; _slider.layer.cornerRadius = SliderHeight/2; [_slider setThumbImage:[UIImage imageNamed:@"滑块按钮"] forState:UIControlStateNormal]; [_slider addTarget:self action:@selector(sliderValueChanged:) forControlEvents:UIControlEventValueChanged]; [self.view addSubview:_slider]; _label = [[UILabel alloc]initWithFrame:CGRectMake(0, 0, SliderWidth, SliderHeight)]; _label.center = self.view.center; _label.text = SliderLabelText; _label.font = [UIFont systemFontOfSize:SliderLabelFont]; _label.textAlignment = NSTextAlignmentCenter; _label.textColor = SliderLabelTextColor; _label.layer.masksToBounds = YES; _label.layer.cornerRadius = SliderHeight/2; _label.layer.borderWidth = 1; _label.layer.borderColor = SliderLabelBorderColor; [self.view addSubview:_label]; //这里创建了一个跟滑块相同的imageview覆盖在文字上面,并在sliderValueChanged方法中让其跟着滑块滑动。 imgView = [[UIImageView alloc]initWithFrame:CGRectMake(_slider.frame.origin.x-2, _slider.frame.origin.y-2, ThumbImageWidth+4, ThumbImageHeight+4)]; imgView.image = [UIImage imageNamed:@"滑块按钮"]; [self.view addSubview:imgView]; } - (void)sliderValueChanged:(UISlider *)slider{ [_slider setValue:slider.value animated:NO]; if (slider.value >0) { _slider.minimumTrackTintColor = SliderMinimumTrackTintColor; }else{ _slider.minimumTrackTintColor = [UIColor clearColor]; } imgView.center = CGPointMake(_slider.frame.origin.x+slider.value*(SliderWidth-ThumbImageWidth)+ThumbImageWidth/2, _slider.frame.origin.y+ThumbImageHeight/2); if (!slider.isTracking && slider.value != 1) { [_slider setValue:0 animated:YES]; if (slider.value >0) { _slider.minimumTrackTintColor = SliderMinimumTrackTintColor; }else{ _slider.minimumTrackTintColor = [UIColor clearColor]; } imgView.frame = CGRectMake(_slider.frame.origin.x-2, _slider.frame.origin.y-2, ThumbImageWidth+4, ThumbImageHeight+4); } }
这样就可以实现上图中的效果,只需要在sliderValueChanged根据slider的value值做相应处理就行了。
以上所述是小编给大家介绍的iOS滑动解锁、滑动获取验证码效果的实现代码,希望对大家有所帮助!
本文向大家介绍jquery实现左右滑动菜单效果代码,包括了jquery实现左右滑动菜单效果代码的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了jquery实现左右滑动菜单效果代码。分享给大家供大家参考。具体如下: 这里演示了三种背景颜色左右滑动jquery菜单导航效果,IE下有问题,本菜单使用了CSS3的部分属性,因此建议使用火狐或Chrome等浏览器获取最佳效果。当把鼠标移到菜单上的时候
本文向大家介绍IOS实现点击滑动抽屉效果,包括了IOS实现点击滑动抽屉效果的使用技巧和注意事项,需要的朋友参考一下 最近,看到好多Android上的抽屉效果,也忍不住想要自己写一个。在Android里面可以用SlidingDrawer,很方便的实现。IOS上面就只有自己写了。其实原理很简单就是 UIView 的移动,和一些手势的操作。 效果图: 以上就是本文的全部内容,希望对大家的学习有所帮助。
本文向大家介绍js实现简洁的TAB滑动门效果代码,包括了js实现简洁的TAB滑动门效果代码的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了js实现简洁的TAB滑动门效果代码。分享给大家供大家参考。具体如下: 这是一款滑动门代码,简洁TAB,简单的鼠标导航效果,大家或许经常见到的效果啦,鼠标放在主菜单上,下边框架内的内容会跟着变换,鼠标不需要点击,只需要滑上去就可切换内容,像一扇门,所以有时
本文向大家介绍JS平滑无缝滚动效果的实现代码,包括了JS平滑无缝滚动效果的实现代码的使用技巧和注意事项,需要的朋友参考一下 本文我们实现纯JS方式的滚动广告效果。 先show一下成品: 首先是网页样式: 布局如下: 具体的JS实现: 这里要注意的是: scrollLeft代表页面利用滚动条滚动到右侧时,隐藏在滚动条左侧的页面的宽度。 offsetWidth 是对象的可见宽度,包滚动条等边线,会随窗
本文向大家介绍jQuery实现带滑动条的菜单效果代码,包括了jQuery实现带滑动条的菜单效果代码的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了jQuery实现带滑动条的菜单效果代码。分享给大家供大家参考。具体如下: 这是一款带滑动条的jQuery滑动菜单,菜单下边有一个蓝色的线条,鼠标移上哪里它就跟向哪里,可以指引当前菜单的位置,另外,动画效果是基于jquery的animate(),对
本文向大家介绍JavaScript实现滑动门效果,包括了JavaScript实现滑动门效果的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了JavaScript实现滑动门效果的具体代码,供大家参考,具体内容如下 一、什么是滑动门 首先你要了解什么是滑动门。 生活中我们经常看到一些网站或是商城有一些滑动门的效果 那么怎么实现一个简单的滑动门的网页特效呢?下面简单分享一下方法, 二、实现滑