这个随笔的内容以上一个随笔为基础,(在iOS中实现一个简单的画板),上一个随笔实现了一个简单的画板:   今天我们要为这个画板增加Undo/Redo操作,当画错了一笔,可以撤销它,或者撤销之后后悔了,还可以还原.而且我们要通过晃动手机来触发Undo/Redo的选择.   这个demo使用NSUndoManager实现Undo/Redo操作,NSUndoManager 的实现原理是它作为一个记录器,每次数据变化,我们要用这个记录器记录一个相反的操作,当需要undo的时候,它通过执行这个相反的操作就…
.Net为我们提供了众多的泛型集合.比如,Stack<T>先进后出,Queue<T>先进先出,List<T>集合元素可排序,支持索引,LinkedList<T>,双向链表的泛型实现,不支持索引;ISet<T>不允许被复制,他有2个实现,一个是HashSet<T>,不维持集合元素的排序,另一个是SortedSet<T>,支持集合元素的排序;IDictionary<TKey, TValue>是一个字典集合的泛型接口…
在这个随笔中,我们要为iPhone实现一个简单的画板App. 首先需要指出的是,这个demo中使用QuarzCore进行绘画,而不是OpenGL.这两个都可以实现类似的功能,区别是OpenGL更快,但是QuarzCore更简单.   第一步,新建Xcode项目,项目名称就叫SimplePaint. 第二步,添加QuarzCore.framework到项目中.     第三步,创建一个新类,类名叫Line.它代表在iPhone的屏幕上绘画时候的线.因为不管是画一条直线还是一条曲线,都可以看做是多条…
一般的应用软件中,通常会提供Redo和Undo的操作,比如Paint.NET中的动作面板,Word中的撤销重做,一般我们按Ctrl-Z即可回退到上次操作. 要实现上面的这一功能,最直观的想法就是,我们需要把执行的命令以及相应的参数记录下来,一个命令或者动作,我们可以想象成一个对象,将这些的命令以对象的方式放到一个Stack里面,然后Undo的时候,Pop出来,然后执行该命令即可返回之前的状态. 将命令或者操作抽象为一个对象,使得可以用不同的请求参数对对象进行初始化,使得可以对命令进行排队处理,记…
Undo/Redo for Qt Tree Model eryar@163.com Abstract. Qt contains a set of item view classes that use a model/view architecture to manage the relationship between data and the way it is presented to the user. The separation of functionality introduced…
成都亿合科技小编从北京商报了解到,对于开发APP应用的要注意啦,IOS要开始对App Store大扫除:你的APP更新了吗? 日前苹果App Store的开发者们发送邮件,表示将实施一个持续评估应用行动,删除那些不再按照预期运行.不遵守目前审核指南或陈旧的应用. 据了解,苹果此举主要是为了保证App Store商店当中内容的高质量,苹果iOS系统和Android系统相差最大的就是体验和应用质量,如果应用逐渐沦陷降低品质,那么苹果iOS的优势将会失去.而应用商店当中有很多“僵尸”应用甚至有人利用苹…
1.App生命周期 IOS架构是由许多设计模式实现,如model-view-controller 和 delegation模式. 1.1 main函数 与其它框架类似,IOS框架的入口也是从main函数,但是无需程序猿去实现这个main函数,Xcode已经帮我们实现了,在main函数中启动UI框架,其实它是调用了UIApplicationMain函数. main函数在项目的Supporting Files/main.m文件中:  #import <UIKit/UIKit.h>  #import…
想获取用户各项行为数据吗? 想轻松查看用户行为图表吗? 想高效进行 App 运营管理吗? 想,来我带你玩转 App 数据统计.这里我使用专业.轻便的 JAnalytics. 本文内容分为两部分:代码示例&使用技巧部分.控制台图表查看部分. 代码示例&使用技巧 集成 下载 JAnalytics SDK 添加 Lib 文件夹下的全部文件至 Xcode Project 增加相关的 framework 依赖: UIKit.framework SystemConfiguration.framewor…
ASP.NET MVC Filters 4种默认过滤器的使用[附示例]   过滤器(Filters)的出现使得我们可以在ASP.NET MVC程序里更好的控制浏览器请求过来的URL,不是每个请求都会响应内容,只响应特定内容给那些有特定权限的用户,过滤器理论上有以下功能: 判断登录与否或用户权限 决策输出缓存 防盗链 防蜘蛛 本地化与国际化设置 实现动态Action(做权限管理系统的好东西) 先来看一个简单的例子:新建一个AuthFiltersController,里面有两个Action publ…
使用 WijmoJS 轻松实现撤消重做(Undo /Redo) 在V2019.0 Update2 的全新版本中,WijmoJS能够轻松实现撤消和重做操作,使Web应用程序的使用更加友好.更加高效. 不同于HTML提供的基本的撤销/重做功能 HTML只提供非常基本的撤销/重做功能,甚至这种功能在浏览器中也有不一致的表现,即便有一个HTML UndoManager类,但目前没有任何浏览器实现. 而在本次WijmoJS新版本中,我们推出了灵活且易于使用的表单级撤消/重做堆栈类,即带有UndoStack…