AXKit
AXKit copied to clipboard
系统类的功能扩展和一些常用的控件封装。文档地址:https://xaoxuu.com/wiki/axkit
如果项目中集成了AXKit,可以用这样一句代码打印testView在屏幕中的绝对frame。 ```objective-c AXLogCGRect(self.testView.frameInScreen); ```
### localize all subviews! 之前我们实现了将某个控件的文本转换成支持多语言的文本`NSLocalizedString`详见 #3。 而在`0.0.6`以后的版本,你可以用一行代码将本页面所有控件所有文本进行转换: ```objective-c AXLocalizeAllSubviewsInView(self.view); // available(0.0.6) ``` 这个方法建议在项目成型之前使用,避免了频繁更改造成代码混乱,也能够提高开发效率。 缺点是略微影响性能,可以在项目成型到无需大改的阶段之后删掉此代码,手动替换。 ```objective-c // @xaoxuu: 以下这些方法提供更加灵活的实现,可按需使用。 AXLocalizeLabel(self.label); AXLocalizeTextField(self.textField); AXLocalizeTextView(self.textView); AXLocalizeAllLabelsInView(self.view); AXLocalizeAllTextFieldsInView(self.view); AXLocalizeAllTextViewsInView(self.view); ``` > 其实只要不那么极致要求性能的话,只要别用在tableview的cell里,一直留在项目里也是没有多大影响的。 ### 修复了弹出键盘时调整输入框frame的bug 计算了被遮挡的高度offset,将view上移offset的高度。而不是上移一个keyboard的高度。...
之前我们实现了将某个控件的文本转换成支持多语言的文本`NSLocalizedString`详见 #3。 而在`0.0.6`以后的版本,你可以用一行代码将本页面所有控件所有文本进行转换: ```objective-c AXLocalizeAllSubviewsInView(self.view); // available(0.0.6) ``` 这个方法建议在项目成型之前使用,避免了频繁更改造成代码混乱,也能够提高开发效率。 缺点是略微影响性能,可以在项目成型到无需大改的阶段之后删掉此代码,手动替换。 ```objective-c // @xaoxuu: 以下这些方法提供更加灵活的实现,可按需使用。 AXLocalizeLabel(self.label); AXLocalizeTextField(self.textField); AXLocalizeTextView(self.textView); AXLocalizeAllLabelsInView(self.view); AXLocalizeAllTextFieldsInView(self.view); AXLocalizeAllTextViewsInView(self.view); ``` > 其实只要不那么极致要求性能的话,只要别用在tableview的cell里,一直留在项目里也是没有多大影响的。
### hidesBottomBarWhenPushed push到子控制器的时候隐藏底部tabbar。 此方法原本属于`UIViewController`,写在要push的`viewController`里。 如果一个导航控制器想要让所有push的子控制器都隐藏tabbar。 一般的做法是继承,在一个父类`- (void)viewDidLoad`中加上这么一行代码: ```objective-c [self hidesBottomBarWhenPushed]; // available(0.0.6) ``` 现在你有了另一种选择,“设置”这个导航控制器,让它push的子控制器都隐藏tabbar。 在导航控制器的`- (void)viewDidLoad`中加上这么一行代码: ```objective-c [self ax_hidesBottomBarWhenPushed:YES]; // available(0.0.6) ``` > 作者注: > > 实现这个功能主要技术点是如何取消交换方法。 > > 单纯地取消就是再交换一次,但是实际应用必须判断是否交换过,只有交换过才能再交换一次负负得正,否则会产生错乱。...
### NSUserDefaults 增加了`ax_cacheObject`,与`ax_cacheValue`功能不同。区别参考系统的`setObject`和`setValue`。 增加了`ax_removeObjectForKey`方法。 ### NSString 增加了`NSStringFromASCIIValue(unsigned char ASCIIValue)`函数,快速将ASCII码值转换成OC字符串。 增加了一个快速输出百分比的函数,将浮点型CGFloat数据转换成0%~100%的格式化字符串 ```objective-c NSStringFromPercent(CGFloat x); // 当传入x为小于或等于0的数时,NSStringFromPercent(x)为@"0%"。 // 当传入x为大于0并且小于1的数如0.3时,NSStringFromPercent(0.3)为@"30%"。 // 当传入x为大于或等于1的数时,NSStringFromPercent(x)为@"100%"。 ``` ### 取值 增加了NSInteger类型和CGFloat类型的取值范围 增加了确保值在某个范围的方法,示例: ```objective-c // 希望value在0~1之间 CGFloat value =...
### 注释 补充了部分接口的注释 ### NSString NSString分类增加了拼接字符串的快捷方法 用法示例: ```objc NSString *str = @"abc".append(@"d").appendCGFloat(1.2).appendReturn().appendNSInteger(50); NSLog(@"%@",str); ``` 控制台输出为: ```objc 2017-04-14 14:32:53.534 AXKitDemo[17111:290832] abcd1.2 50 ``` 接口: ```objc /** 拼接字符串 */ - (NSString *(^)(NSString...