-
如何检测任意view的subviews的关系树
原文地址:http://www.glimsoft.com/01/07/how-to-inspect-subviews-hierarchy-of-any-uiview/ 本程序设计教程(或指南,如果你希望如此),我要解释一个简单的方式打印出任何UIView整个子视图层次(子类)。我们要通过创建UIView类,并添加一个递归方法来查看整个树结构。 现在,可能有人想知道什么是‘category’:它是一种不需要继承任何类来向类中添加方法的一种简洁方式。想了解更多可以参考官方文档:documentati…
-
如何添加 Quick actions
原文地址:http://iostuts.io/2015/10/08/how-to-add-quick-actions/ 这篇教程介绍了Quick actions是如何工作的,如何创建Quick actions以及如何执行actions。此外,我们创建一个简单的app包含两个静态的Quick actions和一个动态的Quick actions。 我们首先开始静态Quick actions创建。他们都被定义在Info.plist文件的特定键--UIApplicationShortcutItems中…
-
UIPresentationController
UIPresentationController是在iOS8.0后出现,用来提供高级视图切换功能, 使管理present ViewController的过程变得简单。 重要属性及方法 // presentation(演示)起点的ViewController(只读属性) public var presentingViewController: UIViewController { get } // 要展示的ViewController(只读属性) public var presente…
-
CGRectInset 和 CGRectOffset
CGRectInset func CGRectInset(_ rect: CGRect, _ dx: CGFloat, _ dy: CGFloat) -> CGRect 返回一个矩形,这个矩形以原矩形的中心点为中心,比原矩形大或者小。 参数: rect:原矩形. dx:x坐标值用来调整原矩形。创建一个inset矩形,指定正值则比原矩形宽,指定负值则比原矩形窄. dy:y坐标值用来调整原矩形。创建一个inset矩形,指定正值则比原矩形高,指定负值则比原矩形短. -(void)testC…
-
Hit-Testing in iOS
Hit-testing翻译为中文是"命中测试",是确定touch-point是否在一个View内的过程,最终命中的View被称为hit-test view。iOS使用hit-testing来确定那一个UIView是用户手指下最靠前的且能够接收touch事件的view。hit-testing通过反向前序深度优先算法来便利视图的层次结构,从而实现上述功能。 在解释hit-testing 如何工作前,我们先要了解下hit-testing是在什么时候执行的。以下图分解了一个手指从触摸屏幕到离开屏幕的过程…
