ios 屏幕截图- 延迟执行

- (IBAction)clip {
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
        // 1.捕捉
        UIImage *newImage = [UIImage captureWithView:self.view];
        
        // 2.写文件
        NSData *data = UIImagePNGRepresentation(newImage);
        NSString *path = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject] stringByAppendingPathComponent:@"new.png"];
        [data writeToFile:path atomically:YES];
    });
}

时间: 2024-10-16 01:13:54

ios 屏幕截图- 延迟执行的相关文章

[ios]ios的延迟执行方法

1.最直接的方法performSelector:withObject:afterDelay: 这种方法的缺点:每次要为延时写一个方法 2.使用类别,用BOLCK执行 [代码]c#/cpp/oc代码: 01 @implementation NSObject (PerformBlockAfterDelay) 02   03 - (void)performBlock:(void (^)(void))block 04           afterDelay:(NSTimeInterval)delay

iOS 设置 延迟执行 与 取消延迟执行 方法 以及对 run loop 初步认识

之前开发过程中经常会有需求会使用 NSObject中的"performSelector:withObject:afterDelay:"做方法延迟执行的处理, 但是 还没有什么地方需要实现 取消 这个延迟执行方法"cancelPreviousPerformRequestsWithTarget:".(具体可参见系统库文件 NSOject里面两个方法的声明). 但是 我们应该知道在什么条件下,合理使用 延迟 与 取消延迟. 延迟 和 取消延迟 应该 在同一个 事件处理循环

iOS 代码延迟执行

1. [NSTread sleepForTimeInterval:0.8f] 这个方法 实际效果 好比打断点 等你再恢复断点执行 2.  [self performSelector:@selector(fun:) withObject:nil afterDelay:0.8f]; 这个 就适合UI层级的 异步方式  延迟执行  比较好  还有延迟执行的方法 "fun" 按需求来 当前笔记待补充

IOS中延迟执行的几种方法

前几天去国美在线面试,就遇到了上面的问题,当时是笔试,只写出来了第一种方法,现在整理了一下. //1.performSelector方法:在当前线程中执行的方法,使用默认模式,并延迟执行@selector方法. [self performSelector:@selector(runDelayMethod) withObject:nil afterDelay:2.0]; //取消之前注册的performSelector:withObject:afterDelay:这个方法 //[NSObject

iOS开发延迟执行一个方法的方法

在实际的开发中,有时候需要延迟一段时间执行某个方法或者某段代码,总结两种延迟执行某段代码的方式: 1. [self performSelector: withObject: afterDelay:]; 延迟执行(SEL)里面的方法,是oc中的一个方法.第一个参数是要执行的方法,第二个参数是执行的方法的参数,可以有一个参数也可以为nil.第三个参数是多长时间后执行该方法,该方法是单线程的. 2. dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (in

iOS中延迟执行的几种方式

- 1.使用NSThread类 [NSThread sleepForTimeInterval:3]; 该方法会阻塞当前线程 -2.使用NSObject中的方法 [self performSelector:@selector(download:) withObject:sender afterDelay:timeDelay]; 该方法不会阻塞当前线程,在当前线程执行selector -3.使用gcd 在主线程或由全局队列上的线程异步延迟回调block dispatch_queue_t queue

ios的延迟执行的方法

1.最直接的方法performSelector:withObject:afterDelay: 这种方法的缺点:每次要为延时写一个方法 2.使用类别,用BOLCK执行 01 @implementation NSObject (PerformBlockAfterDelay) 02 03 - (void)performBlock:(void (^)(void))block 04 afterDelay:(NSTimeInterval)delay 05 { 06 block = [[block copy]

iOS: 零误差或极小误差的定时执行或延迟执行?

问题如下: 节奏类游戏需要执行很多的跟音乐节拍相关的操作,并且为了保证节奏感,需要让操作跟节拍的关系十分紧密.对两者间隔要求不能超过0.02秒或更低. 目前使用了 GCD 中的 asyncAfter(deadline:)方法,不过误差总是要大于0.05秒,并且还无法保证误差会不会传递下去.请问有更好的方式来解决误差吗? var time = Date().timeIntervalSince1970 let dq = DispatchQueue(label: "queue", qos:

IOS 关于取消延迟执行函数的种种。performSelector与cancelPreviousPerformRequestsWithTarget

本文非本人撰写 [cpp] view plaincopy @interface NSObject (NSDelayedPerforming) - (void)performSelector:(SEL)aSelector withObject:(id)anArgument afterDelay:(NSTimeInterval)delay inModes:(NSArray *)modes; - (void)performSelector:(SEL)aSelector withObject:(id)a