国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > iOS > 正文

iOS滑動解鎖、滑動獲取驗證碼效果的實現代碼

2020-07-26 03:21:03
字體:
來源:轉載
供稿:網友

 最近短信服務商要求公司的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滑動解鎖、滑動獲取驗證碼效果的實現代碼,希望對大家有所幫助!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 定陶县| 旌德县| 绥中县| 宁化县| 滕州市| 绥棱县| 盖州市| 射阳县| 晋州市| 九龙县| 井研县| 莱州市| 元阳县| 北票市| 永嘉县| 金阳县| 龙南县| 安化县| 安岳县| 宁蒗| 宣化县| 大连市| 洞头县| 鲜城| 莎车县| 北川| 甘孜县| 太仆寺旗| 托克托县| 涡阳县| 同江市| 凤翔县| 梁山县| 阿瓦提县| 博罗县| 墨江| 南皮县| 贵南县| 通道| 万盛区| 彝良县|