IOS开发基础之摇奖机案例
IOS开发基础之摇奖机案例
// ViewController.m
// 33-摇奖机器
// Created by 鲁军 on 2021/3/9.
#import "ViewController.h"
@interface ViewController ()
@property (weak, nonatomic) IBOutlet UILabel *lbl1;
@property (weak, nonatomic) IBOutlet UILabel *lbl2;
@property (weak, nonatomic) IBOutlet UILabel *lbl3;
- (IBAction)start:(id)sender;
@property (weak, nonatomic) IBOutlet UIButton *startButton;
//全局队列
@property(nonatomic,strong)NSOperationQueue *queue;
@end@implementation ViewController
- (NSOperationQueue *)queue{if(_queue==nil){_queue = [[NSOperationQueue alloc] init];//设置最大并发数 (并不是线程数字)//_queue.maxConcurrentOperationCount = 2;}return _queue;
}
- (void)viewDidLoad {[super viewDidLoad];}
- (IBAction)start:(UIButton *)sender {//当队列中有操作的时候 不添加操作if(self.queue.operationCount ==0){//卡死 界面卡死//异步执行[self.queue addOperationWithBlock:^{// NSLog(@"%d,%@",i,[NSThread currentThread]);[self random];}];//设置文字[self.startButton setTitle:@"暂停" forState:UIControlStateNormal];self.queue.suspended = NO;}else if(!self.queue.isSuspended){//正在执行//先把当前的操作执行完 暂停后续的操作self.queue.suspended = YES;//设置文字[self.startButton setTitle:@"继续" forState:UIControlStateNormal];}
}
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{// 操作数NSLog(@"%zd",self.queue.operationCount);
}
-(void)random{while(!self.queue.isSuspended){[NSThread sleepForTimeInterval:0.05];// [0,10) 0-9int num1 = arc4random_uniform(10);int num2 = arc4random_uniform(10);int num3 = arc4random_uniform(10);//回到主线程上更新UI[[NSOperationQueue mainQueue] addOperationWithBlock:^{self.lbl1.text = [NSString stringWithFormat:@"%d",num1];self.lbl2.text = [NSString stringWithFormat:@"%d",num2];self.lbl3.text = [NSString stringWithFormat:@"%d",num3];}];}
}
@end
IOS开发基础之摇奖机案例相关推荐
- IOS开发基础之手势解锁项目案例
IOS开发基础之手势解锁项目案例 项目最终实现效果. 由于缺少红色的error背景图.我自己从安卓项目找到一个手势解锁,然后通过ps添加粉红色的红圈,才得以解决.为了分享给大家源码,github和本地 ...
- IOS开发基础之模拟科技头条项目案例32
IOS开发基础之模拟科技头条项目案例32 说说这个项目的技术要点核心 ,首先是异步网络请求,block的回调,sdWebImage的使用.各个控件的使用,NSDate日期的转换.自动适配屏幕工作,模型 ...
- IOS开发基础之大转盘案例
IOS开发基础之大转盘案例 本案例使用xib加载的,以及核心动画的使用.动态按钮的使用和创建.等知识. 源码在我的主页资源下.欢迎下载. 核心代码在这. // LJRotateView.h // 37 ...
- IOS开发基础之画板案例软件的开发
IOS开发基础之画板案例软件的开发 值此元宵佳节,我依然在学习IOS,几天没有更新博客了.今天更新了一下. 源码在我的主页里面. info.plist里面加入这样的代码,防止截图的时候有问题 < ...
- IOS开发基础之核心动画 基础动画、关键帧、组动画案例
IOS开发基础之核心动画 基础动画.关键帧.组动画案例 案例源码在我的主页里.实现效果图 // // ViewController.m // 30-核心动画 // // Created by 鲁军 o ...
- IOS开发基础之团购案例17-xib和UITableView两种方式实现
IOS开发基础之团购案例17-xib和UITableView两种方式实现 Design By Johnson Shanghai 实现效果 系统和Xcode版本 注意的细节 关键性的代码 // // V ...
- IOS开发基础之NSURLSession的使用
IOS开发基础之NSURLSession的使用 服务器我们选用的是tomcat服务器. 所有项目info.plist加入 <key>NSAppTransportSecurity</k ...
- IOS开发基础之使用Xcode12.3连线storyboard与属性
IOS开发基础之使用Xcode12.3连线storyboard与属性 最近使用Xcode12.3开发,发现连线与以前版本操作上有所不同,今天就分享一下如果连线 我们想做一个点击按钮使label的字换成 ...
- IOS开发基础之UI基础的团购源码完整版本
IOS开发基础之UI基础的团购源码完整版本 // // ViewController.m // 17-团购案例 // // Created by 鲁军 on 2021/2/4. //#import & ...
最新文章
- Java线程池详解学习:ThreadPoolExecutor
- Java学习lesson 09
- Sklearn中的CV与KFold详解
- PMCAFF | 史上最完整的沙龙活动策划总结
- python全栈工程师是指_Python全栈工程师(exercises)
- MySQLBackup 8.0.26 备份与恢复
- android dialog 隐藏状态栏_Flutter-最近搞了个项目-启动页Splash,Navigator.pop无法关闭Dialog...
- 奇迹私服gs服务器端口未能连接请设置参数,奇迹私服架设之各个快捷方式参数...
- 油猴插件-Tampermonkey插件下载
- 认识机器视觉环形光源
- 史上最全的oracle常用知识总结
- 2020-08-24 光纤通信第五章知识点整理
- java中math中的指数是,java指数运算math
- python交易是什么意思_py交易什么意思
- 总结 | Prompt在NER场景的应用
- java多核_java多线程中与多核cpu有什么关系?
- 程序员辛酸泪——当程序员老去,程序员又何去何从
- SSH常见问题及其解决方法
- 面试续与如何做自己的职业规划
- 乐理基础知识-1.节奏
热门文章
- 怎样把项目上传服务器,怎样将项目上传云服务器
- oracle导入初始数据死机,Sqoop导入Oracle数据至hive卡死在hive.HiveImport: Connecting to jdbc:hive2不执行...
- 什么可以搜python答案_什么软件可以搜python答案
- Keil 编译太慢怎么办?教你一招,提速10倍
- HDLBits答案(5)_Generate实例化模块
- 高考辽宁理工高考计算机专业分数,辽宁高考985分数线2019-985大学在辽宁省的录取分数线及位次...
- jboss linux 性能,搭建jprofiler对jboss性能监控
- java获取本周的开始时间和结束时间_2020年三伏天时间表什么时候开始结束 2020年三伏具体时间表一览...
- 中国海洋大学计算机学院研究生导师,中国海洋大学硕士研究生导师介绍:唐瑞春...
- websocket网络层详解_【技术分享】WebSocket漏洞与防护详解