betway必威-betway必威官方网站
做最好的网站

iOS中一句代码解决倒计时问题,复合语句

举例说我们一般写贰个tableView一般都以向上面这种写法写的:

每一种语言都有它极度的地方,对于JavaScript来讲,使用var就足以表明大肆档期的顺序的变量,那门脚本语言看起来非常粗略,但是想要写出优雅的代码却是须要不停积攒经验的。本文列举了JavaScript初学者应该潜心的两个细节,与我们享受。

多年来做事相比较忙,然后近来也在尝试着翻译一篇有关CALayer可怜详解的一篇小说,小说照旧相比好也相比长的,等整治完了再发表出去呢。所以也没啥多余的时光写些东西,就先来分享一下支出中的一些小Tips吧。

self.myTableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, CGRectGetWidth(self.view.frame), CGRectGetHeight(self.view.frame)) style:UITableViewStyleGrouped]; self.myTableView.dataSource = self; self.myTableView.delegate = self;[self.view addSubview:self.myTableView];

1)简化代码

一、倒计时难题

在开拓中时常遭逢倒计时倒计时难题,写三个Button,然后各样判别各样情状,比相当多代码认为很乱,上边就享受一下,一句话化解倒计时难点的事例(当然不是万能的,只适合大部分一般的倒计时_)!先看效果

betway必威官方网站 1倒计时开关的成效

betway必威官方网站,再看看大家的代码

//// ViewController.m// HWCountdownDemo//// Created by HenryCheng on 16/1/4.// Copyright © 2016年 www.igancao.com. All rights reserved.//#import "ViewController.h"#import "UIButton countDown.h"@interface ViewController ()@property (weak, nonatomic) IBOutlet UIButton *countdownBtn;@end@implementation ViewController- viewDidLoad { [super viewDidLoad];}- countdownBtnClick:(UIButton *)sender { [_countdownBtn startWithTime:5 title:@"获取验证码" countDownTitle:@"s" mainColor:[UIColor colorWithRed:84/255.0 green:180/255.0 blue:98/255.0 alpha:1.0f] countColor:[UIColor lightGrayColor]];}- didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated.}@end

此地最重要的正是xib拉了一个button然后连接了它的天性和方法,大家能够看看就调用了

[_countdownBtn startWithTime:5 title:@"获取验证码" countDownTitle:@"s" mainColor:[UIColor colorWithRed:84/255.0 green:180/255.0 blue:98/255.0 alpha:1.0f] countColor:[UIColor lightGrayColor]];}

这一句代码,就做到了倒计时效应。这里自身写了二个category,里面代码是如此的

//// UIButton countDown.m// LiquoriceDoctorProject//// Created by HenryCheng on 15/12/4.// Copyright © 2015年 iMac. All rights reserved.//#import "UIButton countDown.h"@implementation UIButton (countDown)- startWithTime:(NSInteger)timeLine title:(NSString *)title countDownTitle:(NSString *)subTitle mainColor:(UIColor *)mColor countColor:(UIColor *)color { //倒计时时间 __block NSInteger timeOut = timeLine; dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); dispatch_source_t _timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, queue); //每秒执行一次 dispatch_source_set_timer(_timer, dispatch_walltime, 1.0 * NSEC_PER_SEC, 0); dispatch_source_set_event_handler(_timer, ^{ //倒计时结束,关闭 if (timeOut <= 0) { dispatch_source_cancel; dispatch_async(dispatch_get_main_queue(), ^{ self.backgroundColor = mColor; [self setTitle:title forState:UIControlStateNormal]; self.userInteractionEnabled = YES; }); } else { int allTime = timeLine   1; int seconds = timeOut % allTime; NSString *timeStr = [NSString stringWithFormat:@"%0.2d", seconds]; dispatch_async(dispatch_get_main_queue(), ^{ self.backgroundColor = color; [self setTitle:[NSString stringWithFormat:@"%@%@",timeStr,subTitle] forState:UIControlStateNormal]; self.userInteractionEnabled = NO; }); timeOut--; } }); dispatch_resume;}@end

至于这么些主意的定义

//// UIButton countDown.h// LiquoriceDoctorProject//// Created by HenryCheng on 15/12/4.// Copyright © 2015年 iMac. All rights reserved.//#import <UIKit/UIKit.h>@interface UIButton (countDown)/** * 倒计时按钮 * * @param timeLine 倒计时总时间 * @param title 还没倒计时的title * @param subTitle 倒计时中的子名字,如时、分 * @param mColor 还没倒计时的颜色 * @param color 倒计时中的颜色 */- startWithTime:(NSInteger)timeLine title:(NSString *)title countDownTitle:(NSString *)subTitle mainColor:(UIColor *)mColor countColor:(UIColor *)color;@end

试想,即使你有多少个分界面用到那样的倒计时开关,比方怎么着登陆注册、修改密码吗的,直接调用一个主意,会不会很方便?下面包车型地铁Demo持有的代码能够在 这里 看到当然,这里只是简单地自定义,你还足以在里面做越来越多的操作,例如加点动画什么的。以前写过Swift的一部分倒计时的例子,若是您风野趣,能够看看下边包车型客车功用

betway必威官方网站 2加动画的倒计时开关代码在这边能够见见

运用复合语句的话便是把一切代码块放在在那之中,看起来更清晰,如下:

JavaScript定义对象和数组特别简单,我们想要创立一个目的,一般是这么写的:

二、复合语句在 Objective-C 中的使用

后边在一篇小说中见到过一次介绍复合语句在iOS中的使用,这里跟咱们大饱眼福一下。举例大家一般写贰个tableView相似都以向上边这种写法写的

 self.myTableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, CGRectGetWidth(self.view.frame), CGRectGetHeight(self.view.frame)) style:UITableViewStyleGrouped]; self.myTableView.dataSource = self; self.myTableView.delegate = self; [self.view addSubview:self.myTableView];

选拔复合语句的话正是把全部代码块放在{其间,看起来更清晰,如下

 self.myTableView = ({ UITableView *tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, CGRectGetWidth(self.view.frame), CGRectGetHeight(self.view.frame)) style:UITableViewStyleGrouped]; tableView.dataSource = self; tableView.delegate = self; [self.view addSubview:tableView]; tableView; });

实质上上边两段代码意思完全平等,只然而写法分化而已,第二段看起来更炫彩,快去试试啊!

self.myTableView = ({ UITableView *tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, CGRectGetWidth(self.view.frame), CGRectGetHeight(self.view.frame)) style:UITableViewStyleGrouped]; tableView.dataSource = self; tableView.delegate = self; [self.view addSubview:tableView]; tableView;});
var car = new Object();  car.colour = 'red';  car.wheels = 4;  car.hubcaps = 'spinning';  car.age = 4; 

实在上边两段代码意思一模一样,只可是写法差别而已,第二段看起来更光彩夺目,快去搜求吧!

上面包车型大巴写法能够直达同等的机能:

var car = {  colour:'red',  wheels:4,  hubcaps:'spinning',  age:4  } 

  前边的写法要短得多,何况你不必要再行写对象名称。

本文由betway必威发布于编程开发,转载请注明出处:iOS中一句代码解决倒计时问题,复合语句

TAG标签: betway必威
Ctrl+D 将本页面保存为书签,全面了解最新资讯,方便快捷。