iOS - 通过runtime获取某个类中所有的变量和方法
苹果官方的类中只提供给我们一小部分成员变量和方法,但有时候我们需要的恰好就没有提供,这样就会令开发人员十分懊恼了,那怎样才能获取该类中所有的变量及方法,用来查找是否有相对应的变量和方法呢?我们可以使用苹果自带的 运行时(runtime) 来获取+
苹果官方的类中只提供给我们一小部分成员变量和方法,但有时候我们需要的恰好就没有提供,这样就会令开发人员十分懊恼了,那怎样才能获取该类中所有的变量及方法,用来查找是否有相对应的变量和方法呢?我们可以使用苹果自带的 运行时(runtime) 来获取
运行时(Runtime):
苹果官方一套C语言库
能做很多底层操作(比如访问隐藏的一些成员变量\成员方法….)
以下以 UITextField 为例
一. 包含运行时头文件1#import <objc/runtime.h>
二. 获取所有的成员变量123456789101112131415161718unsigned int count = 0; // 拷贝出所胡的成员变量列表Ivar *ivars = class_copyIvarList([UITextField c ...
iOS - 实现UINavigation全屏动返回(二)
在 iOS - 实现UINavigation全屏滑动返回(一) 中我们实现了滑动返回的功能,但不是全屏滑动返回,得在左侧边缘轻扫才能滑动返回~UINavigationController自带的只能在边缘轻扫才能滑动返回,这用户体验是不好的,接下来实现全屏滑动返回!
+
回顾在 iOS - 实现UINavigation全屏滑动返回(一) 中我们实现了滑动返回的功能,但不是全屏滑动返回,得在左侧边缘轻扫才能滑动返回~UINavigationController自带的只能在边缘轻扫才能滑动返回,这用户体验是不好的,接下来实现全屏滑动返回!
思路既然自带的滑动返回只能是在边缘,那我们能不能修改使它触摸范围变大甚至全屏呢?先来看下系统手势有没有提供属性或方法供我们使用1NSLog(@"%@", self.interactivePopGestureRecognizer);打印信息:123456/*<UIScreenEdgePanGestureRecognizer: 0x7fd542611e20; state = Possible; delaysTouchesBegan = YE ...
iOS - 实现UINavigation全屏动返回(一)
interactivePopGestureRecognizer 是UINavigationController自带手势,当我们自定义了导航条的返回按钮后,这个手势就自动失效了,也就是说无法滑动返回。+
要点interactivePopGestureRecognizer 是UINavigationController自带手势,当我们自定义了导航条的返回按钮后,这个手势就自动失效了,也就是说无法滑动返回。
条件很多情况下我们不得不自定义导航条的返回按钮,但是我们也要滑动返回上一级的效果。
思路既然自动失效,那我们就告诉它什么时候生效。
在非根控制器下生效(用于滑动返回上一级)
在根控制器下失效(防止根控制器被移除,当然系统不会让我们把它移除,只是会出现bug)翻译:第一个被添加的控制器成为永远不会被出栈的根控制器
步骤自定义一个 UINavigationController ,即继承于 UINavigationController ,名字为 LXFNavigationController ,将代理设为自己,遵守协议 UINavigationControllerDelegate , ...