博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS绘图例2:增加Undo/Redo功能
阅读量:7067 次
发布时间:2019-06-28

本文共 1507 字,大约阅读时间需要 5 分钟。

  hot3.png

  1. 在工程中添加Undo、Redo的按钮图片,每个按钮都有可用和不可用两种状态图片,共4个图片。

  2. 在StoryBoard中添加两个按钮,设置图片属性和自动布局约束。

  3. 按住 Ctrl 拖动按钮到 ViewController.mm 中,创建属性变量和动作方法。

    @interface ViewController () @property (weak, nonatomic) IBOutlet UIButton *undoButton; @property (weak, nonatomic) IBOutlet UIButton *redoButton; @end @implementation ViewController - (void)viewDidLoad {     [super viewDidLoad]; } - (IBAction)undo:(id)sender { } - (IBAction)redo:(id)sender { } @end
  4. 在 ViewController.mm 中导入 GiViewHelper.h,在 viewDidLoad 中启用Undo功能,实现Undo/Redo按钮方法:

    - (void)viewDidLoad {     [super viewDidLoad];     NSString *path = [LIBRARY_FOLDER stringByAppendingString:@"undo"];     [[GiViewHelper sharedInstance]startUndoRecord:path]; } - (IBAction)undo:(id)sender {     [[GiViewHelper sharedInstance]undo]; } - (IBAction)redo:(id)sender {     [[GiViewHelper sharedInstance]undo]; }

    运行程序,画几个图,试试Undo/Redo按钮吧。虽然能工作了,但按钮可用状态未显示出来。

  5. 在 ViewController 中实现 GiPaintViewDelegate 观察者协议的 onContentChanged: 方法,注册此观察者。

    @interface ViewController ()
    ... - (void)viewDidLoad { [super viewDidLoad]; ... GiViewHelper *hlp = [GiViewHelper sharedInstance]; [hlp startUndoRecord:[LIBRARY_FOLDER stringByAppendingString:@"undo"]]; [hlp addDelegate:self]; [self onContentChanged:hlp.view]; } - (void)onContentChanged:(id)view { GiViewHelper *hlp = [GiViewHelper sharedInstance]; self.undoButton.enabled = [hlp canUndo]; self.redoButton.enabled = [hlp canRedo]; }

样例代码见 或 ,欢迎 Fork。

转载于:https://my.oschina.net/rhcad/blog/318775

你可能感兴趣的文章
小米血压计的5大亮点和1大“缺陷”
查看>>
搜狐吴建强:企业信息安全实践
查看>>
如何安装pandom : 一个针对Linux的真随机数生成器
查看>>
戴尔SCv2000评测:入门级阵列之易用体验
查看>>
netty5 HTTP协议栈浅析与实践
查看>>
如何保障业务连续性?云之讯有话说
查看>>
OpenStack支持哪些容器编排引擎?
查看>>
大数据技术在发展 挑战与机遇并存
查看>>
《Drupal实战》——3.4 小结
查看>>
如何提高数据质量?
查看>>
美国软件商涉嫌行贿中国国企官员 折射成品软件价值缩水行业困局
查看>>
台厂九月报:新日光营收逆势狂涨64%
查看>>
《软件需求工程(第2版)》一1.4 需求规格说明
查看>>
AMD重回服务器市场,发EPYC霄龙数据中心处理器
查看>>
《深入理解C++11:C++ 11新特性解析与应用》——第1章 新标准的诞生 1.1 曙光:C++11标准的诞生...
查看>>
《SEO的艺术(原书第2版)》——3.8 为头脑份额/品牌开展SEO
查看>>
黑客盗取12万比特币:总价值约7500万美元
查看>>
2020年3GPP技术将达到LPWA连接的35%
查看>>
安防市场视频监控比重大 并有新商机
查看>>
DevOps的新阶段
查看>>