标签:sed 分组 初始化 工程 bsp https request 查找 nbsp
一、适配iOS11
问题1:项目中有原生与H5的交互,运行在iOS11时,直接漰溃在框架WebViewJavascriptBridge内部。
报错信息:Completion handler passed to -[WKWebViewJavascriptBridge webView:decidePolicyForNavigationAction:decisionHandler:] was called more than once
解决:当时第一时间肯定是立即看github上该框架的issue,果然找到了解决方案。该issue链接:https://github.com/marcuswestin/WebViewJavascriptBridge/issues/302,详情如下图
按照上述提供的解决方案修改就好了,下图是修改前与修改后对比 ( 左图修改前,右图修改后 )
问题2:用户首次安装时, 定位权限框不弹出?
解决:原来在ios 11内权限的请求被降级了,因为之前工程内首次请求定位权限使用的方法为requestAlwaysAuthorization,但在ios11内要使用requestWhenInUseAuthorizationf
问题3:tableView,scrollView,WkWebView等显示内容出现向下偏移。由于app首面就用了一个类似支付宝首页的滑动交互,scrollView上套了一个tableView,所以连滑动的效果也都一起出了问题。
解决:通过网上查找信息,发现ios11内scrollView多了一个contentInsetAdjustmentBehavior属性(默认UIScrollViewContentInsetAdjustmentAutomatic),在系统导航栏下,默认向下产生了偏移。因为工程内自己创建的tableView,scrollView,WKWebView都分别继承匪类xxbaseTableView, xxbaseScrollView, xxbaseWKWebView, 所以修改直接就在它们初始化时加下如下代码
对xxbaseWKWebView则是self.scrollView.contentInsetAdjustmentBehavior
修改好后,经测试,那些不正常的页面确实正常了。之前在网上看到有人解决方案是在appdelegate里
[UIScrollView appearance].contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
[UITableView appearance].contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
这样确实可以解决这个问题,但是在调用出系统相册的地方,会导致系统相册页面的tableView自动向上移,即这个属性会影响到一些系统控制器内的UIScrollView,UITableView的偏移,所以不太建议使用这种方案。
问题4:ios11中tableView分组间距变大。
解决:原来组尾间距之前实现了heightForFooterInSection,而没有实现viewForFooterInSection方法,在ios11之前是没问题,但现在就都要实现,如果不需要他们之前有间距需要这样设置
二、适配iPhone x
问题1:在iPhone x模拟器上有tabBar时,push页面底部的tabBar会向上跳动一下,然后返回回来后又是tabBar又正常,再push又会跳动。
解决:在拦截所有控制器push的地方加上如下代码
问题2:关于iPhone x导航栏和底部TabBar高度及安全区的适配。如果不适配最直观现象就是iPhone x页面被辅满,显示内容被顶部刘海和底部home指示器挡住。
解决:
a 关于导航栏:因为工程内没有用到系统的导航条,是完全自定义的一个view,所以iPhone x上只要将它的高度由64变高到
—————— 未完待续 ——————
标签:sed 分组 初始化 工程 bsp https request 查找 nbsp
原文地址:http://www.cnblogs.com/buerjj/p/7652120.html