记录项目中的小问题

一.首先看一下MJRefresh的问题 (下拉刷新的问题)
记录项目中的小问题_第1张图片
F19A85F8-1399-43D9-A7EB-DCB38B9B28B5.png

这特么就尴尬了!!更新了最新的mj也不行。找了很多资料,出现这种问题的很少,在别的项目中就没有这样的问题。后来看了里面的API再结合资料最终也算是解决了。
首先找到MJRefresh文件里面的 MJRefreshConst.m 然后在里面做出修改,将里面的值替换一下
原始的:

NSString *const MJRefreshHeaderIdleText = @"MJRefreshHeaderIdleText";
NSString *const MJRefreshHeaderPullingText = @"MJRefreshHeaderPullingText";
NSString *const MJRefreshHeaderRefreshingText = @"MJRefreshHeaderRefreshingText";

NSString *const MJRefreshAutoFooterIdleText = @"MJRefreshAutoFooterIdleText";
NSString *const MJRefreshAutoFooterRefreshingText = @"MJRefreshAutoFooterRefreshingText";
NSString *const MJRefreshAutoFooterNoMoreDataText = @"MJRefreshAutoFooterNoMoreDataText";

NSString *const MJRefreshBackFooterIdleText = @"MJRefreshBackFooterIdleText";
NSString *const MJRefreshBackFooterPullingText = @"MJRefreshBackFooterPullingText";
NSString *const MJRefreshBackFooterRefreshingText = @"MJRefreshBackFooterRefreshingText";
NSString *const MJRefreshBackFooterNoMoreDataText = @"MJRefreshBackFooterNoMoreDataText";

NSString *const MJRefreshHeaderLastTimeText = @"MJRefreshHeaderLastTimeText";
NSString *const MJRefreshHeaderDateTodayText = @"MJRefreshHeaderDateTodayText";
NSString *const MJRefreshHeaderNoneLastDateText = @"MJRefreshHeaderNoneLastDateText";

替换:

NSString *const MJRefreshHeaderIdleText = @"下拉可以刷新";
NSString *const MJRefreshHeaderPullingText = @"松开立即刷新";
NSString *const MJRefreshHeaderRefreshingText = @"正在刷新数据中...";

NSString *const MJRefreshAutoFooterIdleText = @"点击或上拉加载更多";
NSString *const MJRefreshAutoFooterRefreshingText = @"正在加载更多的数据...";
NSString *const MJRefreshAutoFooterNoMoreDataText = @"已经全部加载完毕";

NSString *const MJRefreshBackFooterIdleText = @"上拉可以加载更多";
NSString *const MJRefreshBackFooterPullingText = @"松开立即加载更多";
NSString *const MJRefreshBackFooterRefreshingText = @"正在加载更多的数据...";
NSString *const MJRefreshBackFooterNoMoreDataText = @"已经全部加载完毕";

NSString *const MJRefreshHeaderLastTimeText = @"最后更新:";
NSString *const MJRefreshHeaderDateTodayText = @"今天";
NSString *const MJRefreshHeaderNoneLastDateText = @"无记录";

OK,基本完成,看下效果:


记录项目中的小问题_第2张图片
306DEE08-5505-4804-B477-C6EBDCDE6346.png

二.UIImagePicker里面列表便移的问题
记录项目中的小问题_第3张图片
3ABECB00-30F5-487E-A14C-BB686B1FBAE7.png

发现是它干的这种事appearance协议,干这样的事情。。。
你是否有这句话:

  if (@available(iOS 11.0, *)) {
        UIScrollView.appearance.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
    }

那出现这样的问题就对了!!

解决办法:
在你进入相册之前加上这句话:

 if (@available(iOS 11, *)) {
        UIScrollView.appearance.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentAutomatic;
    }

然后在选择相册或者退出相册加上这句话

  if (@available(iOS 11.0, *)) {
        UIScrollView.appearance.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
    }

好完美解决。不不不,不是完美,你不能在每个用到的地方都加上这句话吧。在一个技术群里面大神给出了思路:(由于赶项目没有去实践)

可以把这个判断放在base控制器中
然后不要用appearance协议
viewDidLayoutSubviews方法中,判断一下好了

具体还没有实践。也可以用runtime 去解决。
好了,先记录下来,有时间实践一下。
补充:在一个技术群里说设置pciker的导航栏透明度也可以解决即

self.picker.navigationBar.translucent = NO;

亲测也可以!

忘记上图了:
记录项目中的小问题_第4张图片
8A04C190-9FBA-49AB-96FE-AD636893E0A7.png

不吹牛逼了,感谢去写项目了!!

你可能感兴趣的:(记录项目中的小问题)