目录:
一.自定义textfired完成按钮
二. 调起微信之后显示支付验证签名失败
三.runtime分类设置关联的使用
一.自定义textfired完成按钮
由于在输入数量的时候需要监听输入数字以及点击时收起键盘
ios 11的键盘
ios10的键盘
注意:项目中使用IQKeyboardManager对键盘进行管理,但是对ios11似乎又不足之处,例如上面的两种效果。。
改造之后(ios10和ios11统一显示)
自定义一个继承UITextField,在.h文件里面添加block回调
- (void)drawRect:(CGRect)rect {
[super drawRect:rect];
UIView *bar = [[UIView alloc] initWithFrame:CGRectMake(0,0, Screen_Width,44)];
bar.backgroundColor = kBgColor;
UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(Screen_Width - 70, 7,60, 30)];
[button setTitle:@"完成"forState:UIControlStateNormal];
[button setTitleColor:kThemeColor forState:UIControlStateNormal];
button.layer.borderColor = [UIColor colorWithHexString:@"62C6B2"].CGColor;
button.layer.borderWidth =1;
button.layer.cornerRadius =3;
[_bar addSubview:button];
[button addTarget:self action:@selector(btnOnClick) forControlEvents:UIControlEventTouchUpInside];
self.inputAccessoryView.userInteractionEnabled = YES;
self.inputAccessoryView = bar;
}
- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event{
__block UIView * view = [super hitTest:point withEvent:event];
if (view == nil) {
[self.subviews enumerateObjectsUsingBlock:^(__kindof UIView * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
if ([obj isKindOfClass:[UIButton class]]) {
view = obj;
*stop = YES;
}
}];
CGPoint newPoint = [view convertPoint:point fromView:self];
// 判断触摸点是否在button上
if (CGRectContainsPoint(view.bounds, newPoint)) {
view = view;
}else{
return nil;
}
}
return view;
}
- (void) btnOnClick {
if (self.finishCallBack) {
self.finishCallBack();
}
}
使用 (且count是刚刚自定义一个继承UITextField的类)
self.count.finishCallBack = ^() {
//做相应操作。。。
//收键盘
[[[UIApplication sharedApplication] keyWindow] endEditing:YES];
};
二. 调起微信之后显示支付验证签名失败
:首先刚开始接微信支付的时候,一直拉不起微信客户端,该设置的都设置了,始终拉不起,结果是后台签名不对,导致拉不起客服端。再后来过了一段时间后,拉起之后报支付验证失败,拿了一台安卓机试了两把,并没有问题,但是我并没有动过支付这一块的代码,麻蛋这就邪门了。找后台问是什么原因,说自己那边没有问题,说安卓能拉起,你拉不起应该是你的问题,于是乎各种的检查代码,对着官方文档的参数对了又对,在网上有看到说可能是时间戳导致的,于是对着后台这个参数
timeStamp
和之前能拉起的对比都是10位,以为这是没有问题的了.结果证明我错了。。问同行朋友以及百度上各种找问题和对文档,白白地浪费了1个多小时。。
三.runtime分类设置关联的使用
首先我在底层打了BaseTableViewController,使用了#import "UIScrollView+EmptyDataSet.h"
此框架,挺不错的一大神写的。将设置了
_tableView.emptyDataSetSource = self;
_tableView.emptyDataSetDelegate = self;
self.succeedEmptyStr =@"当前暂无内容~";
self.succeedEmptyImage = [UIImage imageNamed:@"mine_background"];
并为此设置了分类BaseTableViewController+PageStatus,在分类中进行一些暗操作。