ios 总结这一周所遇到的问题以及处理方式

目录:
一.自定义textfired完成按钮
二. 调起微信之后显示支付验证签名失败
三.runtime分类设置关联的使用

一.自定义textfired完成按钮

由于在输入数量的时候需要监听输入数字以及点击时收起键盘
ios 11的键盘

ios 总结这一周所遇到的问题以及处理方式_第1张图片
图片.png

ios10的键盘
ios 总结这一周所遇到的问题以及处理方式_第2张图片
图片.png

注意:项目中使用IQKeyboardManager对键盘进行管理,但是对ios11似乎又不足之处,例如上面的两种效果。。

改造之后(ios10和ios11统一显示)

ios 总结这一周所遇到的问题以及处理方式_第3张图片
IMG_1838.PNG

自定义一个继承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个多小时。。

ios 总结这一周所遇到的问题以及处理方式_第4张图片
134E2FEFECF43EA9F2B9B8201B104D2A.png
ios 总结这一周所遇到的问题以及处理方式_第5张图片
图片.png

ios 总结这一周所遇到的问题以及处理方式_第6张图片
图片.png
ios 总结这一周所遇到的问题以及处理方式_第7张图片
图片.png
ios 总结这一周所遇到的问题以及处理方式_第8张图片
图片.png

三.runtime分类设置关联的使用

首先我在底层打了BaseTableViewController,使用了#import "UIScrollView+EmptyDataSet.h"此框架,挺不错的一大神写的。将设置了

    _tableView.emptyDataSetSource = self;
        _tableView.emptyDataSetDelegate = self;
        self.succeedEmptyStr =@"当前暂无内容~";
        self.succeedEmptyImage = [UIImage imageNamed:@"mine_background"];

并为此设置了分类BaseTableViewController+PageStatus,在分类中进行一些暗操作。

.h文件
ios 总结这一周所遇到的问题以及处理方式_第9张图片
图片.png
.m文件
ios 总结这一周所遇到的问题以及处理方式_第10张图片
图片.png

ios 总结这一周所遇到的问题以及处理方式_第11张图片
图片.png
ios 总结这一周所遇到的问题以及处理方式_第12张图片
图片.png

ios 总结这一周所遇到的问题以及处理方式_第13张图片
图片.png
1.断网情况下显示
ios 总结这一周所遇到的问题以及处理方式_第14张图片
1
2.无数据情况下显示
ios 总结这一周所遇到的问题以及处理方式_第15张图片
IMG_1835.PNG
3.使用
ios 总结这一周所遇到的问题以及处理方式_第16张图片
图片.png

你可能感兴趣的:(ios 总结这一周所遇到的问题以及处理方式)