xaoxuu

Results 36 issues of xaoxuu

![simulator screen shot 19 may 2017 9 36 10 pm](https://cloud.githubusercontent.com/assets/16400144/26250006/331e2ba0-3cdb-11e7-8b02-6d27a6de2921.png)

ErrorCode

目前的方法是: ```objective-c self.imageView.image = [UIImage ax_imageWithColor:axColor.theme size:self.imageView.frame.size alpha:1]; ``` 每次都要输入size和alpha很麻烦。 理想的方法应该是: ```objective-c self.imageView = [UIImageView ax_imageViewWithColor:axColor.theme]; ```

enhancement
help

有时候想pop到从RootVC开始数的第二个VC怎么办?虽然实现并不复杂,但是这些可自动化的工作能封装起来用着自然舒服很多。 于是我封装了两个更灵活的pop方法: ```objective-c /** pop到指定viewController @param index 从rootVC开始向后数的index,rootVC为0 */ - (void)ax_popToViewControllerWithIndexFromRoot:(NSUInteger)index; /** pop到指定viewController @param index 从当前viewController开始向前数的index,当前VC为0 */ - (void)ax_popToViewControllerWithIndexFromSelf:(NSUInteger)index; ``` 使用示例: 我在一个view里放置了两列按钮,一列是从RootVC开始数index,另一列是反向从当前VC开始数index。 ```objective-c - (IBAction)popFromRoot:(UIButton *)sender { [self.controller.navigationController ax_popToViewControllerWithIndexFromRoot:sender.titleLabel.text.integerValue]; //...

enhancement
help

目前可以根据子视图的类来只选择某些子视图,代码如下: ```objective-c [self.topView ax_eachSubview:[UIImageView class] action:^(__kindof UIView * _Nonnull subview) { }]; ``` 计划增加一种可以根据tag值或者selected状态来选定特定类型的子视图,如: ```objective-c [self.view ax_eachSubview:[UIImageView class] tag:1 action:^(__kindof UIView * _Nonnull subview) { }]; [self.view ax_eachSubview:[UIButton class] selected:YES...

enhancement
help

如果项目中集成了AXKit,可以用这样一句代码打印testView在屏幕中的绝对frame。 ```objective-c AXLogCGRect(self.testView.frameInScreen); ```

help

### 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的高度。...

releaselog

之前我们实现了将某个控件的文本转换成支持多语言的文本`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里,一直留在项目里也是没有多大影响的。

enhancement

### 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) ``` > 作者注: > > 实现这个功能主要技术点是如何取消交换方法。 > > 单纯地取消就是再交换一次,但是实际应用必须判断是否交换过,只有交换过才能再交换一次负负得正,否则会产生错乱。...