Xcode9+iphoneX可能会遇到的适配问题
2017-09-13 本文已影响1843人
妳笇what
熬夜看了一下发布会,唉,又要适配了,但iOS最起码比Android那边适配还是轻松点。运行iPhoneX模拟器,发现原先在7p上完好的适配竟然有问题。
tableview这一块的空白是什么原因?
,但是在其它设备上确实没有这个问题啊。包括下面的tableBar也有点不适应。好吧,我首先想到是不是应该
self.automaticallyAdjustsScrollViewInsets = NO;
,检查一下代码(反正也是别人的项目,得从头开始查看
),没有问题。难道是自动打开了Self-Sizing
的原因?但是这里纯手写代码,并没有用xib啊,管他的,先关闭再说,在iOS 11中Table Views默认启用Self-Sizing的,Headers, footers, and cells都默认开启Self-Sizing,
,我就在代码中添加了关闭的代码:
self.tableView.estimatedRowHeight = 0;
self.tableView.estimatedSectionHeaderHeight = 0;
self.tableView.estimatedSectionFooterHeight = 0;
运行一下,然并卯啊!!!,我表示很无奈,没办法,开始查阅资料。我靠!
@property(nonatomic,assign) BOOL automaticallyAdjustsScrollViewInsets API_DEPRECATED_WITH_REPLACEMENT("Use UIScrollView's contentInsetAdjustmentBehavior instead", ios(7.0,11.0),tvos(7.0,11.0)); // Defaults to YES
iOS11弃用了automaticallyAdjustsScrollViewInsets属性,新增contentInsetAdjustmentBehavior来替代它。
contentInsetAdjustmentBehavior
/* Configure the behavior of adjustedContentInset.
Default is UIScrollViewContentInsetAdjustmentAutomatic.
*/
@property(nonatomic) UIScrollViewContentInsetAdjustmentBehavior contentInsetAdjustmentBehavior API_AVAILABLE(ios(11.0),tvos(11.0));
typedef NS_ENUM(NSInteger, UIScrollViewContentInsetAdjustmentBehavior) {
UIScrollViewContentInsetAdjustmentAutomatic,
// 和scrollableAxes一样,scrollView会自动计算和适应顶部和底部的内边距并且在scrollView 不可滚动时,也会设置内边距.
UIScrollViewContentInsetAdjustmentScrollableAxes,
//自动计算内边距.
UIScrollViewContentInsetAdjustmentNever,
// 不计算内边距
UIScrollViewContentInsetAdjustmentAlways,
// 根据safeAreaInsets 计算内边距
呦呦切克闹,开始适配,只需要判断一下
if (@available(iOS 11.0, *)) {
_tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
_tableView.contentInset = UIEdgeInsetsMake(0, 0, 49, 0);
_tableView.scrollIndicatorInsets = _tableView.contentInset;
}
if #available(iOS 11.0, *) {
tableView.contentInsetAdjustmentBehavior = .never
tableView.contentInset = UIEdgeInsetsMake(0, 0, 49, 0)
tableView.scrollIndicatorInsets = tableView.contentInset
}
在声明tableView地方添加就可以解决了
如果出现没有全屏的情况下,应该是你的launchImages的原因,让美工出一个@3倍图
修改好了