美文网首页
记录项目中的小问题

记录项目中的小问题

作者: 其实你懂De | 来源:发表于2017-11-09 11:42 被阅读56次
    一.首先看一下MJRefresh的问题 (下拉刷新的问题) 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,基本完成,看下效果:


    306DEE08-5505-4804-B477-C6EBDCDE6346.png 二.UIImagePicker里面列表便移的问题 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;
    

    亲测也可以!

    忘记上图了: 8A04C190-9FBA-49AB-96FE-AD636893E0A7.png
    不吹牛逼了,感谢去写项目了!!

    相关文章

      网友评论

          本文标题:记录项目中的小问题

          本文链接:https://www.haomeiwen.com/subject/qtspmxtx.html