IOS 定时器 NSTimer

定时器对象,在OC中,定时器对象是NSTimer类型

//ViewController.h
#import <UIKit/UIKit>
@interface ViewController: UIViewController
{NSTimer *_timer;  // 声明一个定时器对象int _time_num;
}
//ViewController.m
#import "ViewController.h"
@implementation
- (void) viewDidLoad{[super viewDidLoad];[self startTimer];
}
- (void) startTimer{_time_num = 0;// 启动一个循环定时器,间隔为1秒_timer = [NSTimer scheduledTimerWithTimerInterval:1  target:self  selector:@selector(addTimeNum) userInfo:100  repeats: YES]; 
}
//接受参数
- (void) addTimeNum:(NSTimer *)timer {_time_num += 1;NSSLog(@"time_num = %s",  _time_num);// 大于参数指定的值,清除定时器if (timer.userInfo > _time_num) {[_timer invalidate];}
}
@end

定时移动视图案列

//ViewController.m
#import "ViewController.h"
@implementation
- (void) viewDidLoad{[super viewDidLoad];[self startTimer];
}
- (void) createdView{UIView *view = [[UIView alloc] init];view.frame = CGRectMake(0, 0, 100, 100);view.backgroundColor = [UIColor greenColor];view.tag = 101 //设置ID,便于直接捕捉操作[self.view addSubView: view];
}
- (void) startTimer{_time_num = 0;// 启动一个循环定时器,间隔为1秒_timer = [NSTimer scheduledTimerWithTimerInterval:1  target:self  selector:@selector(addTimeNum) userInfo:100  repeats: YES]; 
}
//接受参数
- (void) addTimeNum:(NSTimer *)timer {_time_num += 1;UIView *view = [self.view viewWithTag: 101];view.frame = CGRectMake(_time_num, _time_num, view.frame.origin.width, view.frame.origin.height);// 大于参数指定的值,清除定时器if (timer.userInfo > _time_num) {[_timer invalidate];}
}
@end

API

  • List item - (NSTimer*) scheduledTimerWithTimerInterval:int target:id selector:@selector userInfo:id repeats: BOOL 创建并返回一个定时器,参数1表示定时器执行间隔,单位秒。target参数表示事件函数实现对象的指针。 selector 表示事件函数。 userInfo表示传入事件函数的参数,不需要参数则传nil。repeats参数表示是否重复执行,YES或NO
  • - (void) invalidate 清除定时器

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/563887.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

冻结和只读取当前对象的属性,不读取对象原型的属性

Object.entries(obj) Object.entries()方法返回一个给定对象自身可枚举属性的键值对数组&#xff0c;其排列与使用 for…in 循环遍历该对象时返回的顺序一致&#xff08;区别在于 for-in 循环还会枚举原型链中的属性&#xff09;。 const object1 {a: somestring,b: 42 };fo…

IOS UISwitch 组件的使用

UISwtch 在许多场景中会使用到&#xff0c;通常用来坐设置开关等行为。下面我们来看一下IOS 中 UISwitch 等用法。注意&#xff1a;UISwitch 无法通过 frame 设置宽高 UISwitch* _switch [[UISwitch alloc] init];// 设置状态和开启动画[_switch setOn:NO animated:YES];// 设…

IOS 开发 UIProgress 和 UISlidre 进度条和滑动条组件

进度条和滑动条组件非常常见&#xff0c;在ios中进度条组件是无法响应事件的。滑动条可响应事件。但是这两个组件均不可设置高度&#xff0c;可设置x,y,width 进度条属性 名称类型说明默认值progressViewStyleUIProgressViewStyle进度条样式UIProgressViewStyleDefaultprogres…

OC 中数字转字符串和浮点数转整数等转换

浮点数转字符串 float value 0.2; NSString* text [[NSString alloc] initWithFormat:"%f", value];整数转字符串 int value 10; NSString* text [[NSString alloc] initWithFormat:"%d", value];NSInteger 转字符串 NSInteger value 10; NSString…

IOS ActivityIndicator 活动指示器使用

IOS中活动指示器的使用非常简单。 UIActivityIndicatorView* _activity [[UIActivityIndicatorView alloc] init];// 设置位置_activity.frame CGRectMake(180, 100, 80, 80);// 设置菊花样式[_activity setActivityIndicatorViewStyle:UIActivityIndicatorViewStyleLarge];/…

IOS 模态弹窗与操作版使用 UIAlertController

IOS8 以后UIAlertView 改用 UIAlertController 实现模态窗和操作板。UIAlertController 的使用与UIAlerView 非常不同&#xff0c;它实际上是把弹窗内容与显示方式、按钮列表、分离。实现起来非常简单。如下 1.调用静态方法创建弹窗控制器 alertControllerWithTitle 声明弹窗控…

IOS 单行文本输入框 UITextField 使用

UITextField 继承 UIControl 类&#xff0c;只支持单行输入和显示&#xff0c;可输入密码类型。支持实现代理 UITextFieldDelegate 属性 名称类型说明默认值textNSString文本输入值textColorUIColor文本颜色UIFontUIFont文本大小textAlignmentNSTextAlignment文本方向NSLeftTe…

OC 中NSString与NSString 的比较

OC 中 字符串是一个对象&#xff0c;所以不能使用 进行比较是否相等。因为两个字符串的内存地址可能不一样&#xff0c;但是内容一样。所以我们要使用其他方法进行比较运算。 isEqualToString if (["2121" isEqualToString:"2121"]) {NSLog("一致&q…

javascript 对象比较是否属于同一类型对象。

js属于动态类型语言&#xff0c;那么我们如何判断 A实例是否和 b对象实例属于同一类型呢&#xff1f;比如 array array &#xff0c;Error Error&#xff0c;自定义类的实例比较 等等对象类型判断。如果只用 typeof 肯定是不行的。因为不管 array 还是 object、error、或自定…

IOS UIScrollView 滚动视图的使用和文档

UIScrollView 是一个可滚动的视图列表&#xff0c;在app中非常常见。下面简单的介绍一下UIScrollView 的用法。可实现代理UIScrollViewDelegate // 实例化UIScrollViewUIScrollView* _scrollView [[UIScrollView alloc] init];// 获取屏幕大小UIScreen* screen [UIScreen mai…

css 开启硬件加速的系统级控件

css 开启硬件加速的系统级控件 1.h5在真机上有时候会出现滑动白屏问题&#xff0c;可以开启硬件加速系统级控件进行加速滑屏加速 body{-webkit-overflow-scrolling: touch;overflow: scroll; }2.h5开启动画硬件加速 div{transform: translate(0px); }

js 动态创建注释节点 createComment

const comment document.createComment(注释) document.body.appen(commnet)

解决 sessionStroage 无法在多个标签页共享数据的问题

1.改用 cookie 方式存储数据 2.利用 window.addEventListener(‘stroage’) 监听stroage变化事件进行回调共享数据 1.全局监听stroage事件 通过监听localStroage的数据变化进去读取出token值后进行localStroage删除 window.addEventListener(stroage, (e) > {if (e.stora…

PWA 应用提示安装到桌面

当web Service 和 Manifest 被浏览器安装完后&#xff0c;正常情况下&#xff0c;浏览器会提醒用户可将网页安装到桌面。但是通常浏览器都会限制提醒。这时候我们需要手动唤醒浏览器询问用户是否安装到桌面 beforeinstallprompt beforeinstallprompt 事件 window.addEventListe…

javascript 唯一值的集合 Set对象

Set对象允许存储任何类型的唯一值&#xff0c;无论是原始值还是对象引用。可用于数组&#xff0c;集合去重等操作&#xff0c;拥有size属性 const set1 new Set([1, 2, 3, 4, 5,4]);console.log(set1.has(1)); // expected output: trueconsole.log(set1.has(5)); // expected…

获取当前窗口是否可见 document.visibilityState

document.visibilityState document.visibilityState &#xff08;只读属性&#xff09;, 返回document的可见性, 即当前可见元素的上下文环境. 由此可以知道当前文档(即为页面)是在背后, 或是不可见的隐藏的标签页&#xff0c;或者(正在)预渲染.可用的值如下&#xff1a; vi…

空闲队列函数排队 requestIdleCallback

window.requestIdleCallback()方法将在浏览器的空闲时段内调用的函数排队。这使开发人员能够在主事件循环上执行后台和低优先级工作&#xff0c;而不会影响延迟关键事件&#xff0c;如动画和输入响应。函数一般会按先进先调用的顺序执行&#xff0c;然而&#xff0c;如果回调函…

前端模式 VD, 脏检查 MVVM ,数据收集 MVVM 所使用的场合

VD 虚拟DOM 数据变化&#xff0c;先修改虚拟DOM层&#xff0c;然后通过虚拟DOM树的对比检查获取出最小的修改量进行对真实DOM树进行修改。虚拟DOM模式只是在DOM层的检查&#xff0c;所以初始渲染速度非常快。在细小修改的大量数据修改都是速度也不错的。因为只是在虚拟DOM层的计…

指数随机变量 泊松过程跳_如何深刻的理解随机变量

大多数学校的统计学悲剧在于它是多么愚蠢。老师们花费数小时来研究导数&#xff0c;方程式和定理&#xff0c;当您最终达到最佳效果时&#xff08;将概念应用于实际数字&#xff09;&#xff0c;就会出现一些无关紧要&#xff0c;没有想象力的示例&#xff0c;例如掷骰子。遗憾…

javascript 中文排序 localeCompare

localeCompare()方法返回一个数字来指示一个参考字符串是否在排序顺序前面或之后或与给定字符串相同。 新的locales、options 参数能让应用程序定制函数的行为即指定用来排序的语言。 locales 和 options 参数是依赖于具体实现的&#xff0c;在旧的实现中这两个参数是完全被忽略…