美文网首页iOS Developer
iOS11 Xcode9 更新适配

iOS11 Xcode9 更新适配

作者: 吃屁的小栗子 | 来源:发表于2017-09-21 14:26 被阅读314次

随着iPhone 8和iPhone X 以及iOS 11 的发布更新,更新适配的工作又开始了😶

首先更新到了Xcode 9 ,具体暂时发现了以下新功能

无线调试

😆 😆 看见旁边的安卓调试还在用数据线连接顿时感觉高大上有没有!!
想使用无线调试的首要条件是更新到Xcode 9 和 iOS 11
然后按图所示打开


image.png

勾选上Connect via network


image.png
当左边有小地球的时候表示已经连接
然后可以拔掉数据线,开始装13之旅!

⚠️ ⚠️ 如果有报错,请先将手机设置密码,然后连接上在取消就好了,具体的报错内容忘记保存了😂 😂

多个模拟器调试

Xcdoe 9可以允许多个模拟器同时运行调试
然后就可以左手一个iPhone 8 右手一个iPhone X

快捷键更改

以前快速进入方法command+鼠标单击
现在会弹出一个菜单有不同的操作

image.png

如果想变回以前的操作


image.png

只需要设置一下就可以了

新增AR开发

image.png

xcode 9手动带入第三方遇见的坑

由于项目没有使用pod,最近发现有第三方更新,于是手动导入了一下,结果一直报错,后来发现是Build Phases --->Compile Sources 里面.m文件没有自动导入。。
Xcode 9 的其他的暂时没有什么新发现,欢迎大家补充!!!

下面介绍iOS 11 适配(不包括iPhone X)

searchBar 变高

以前使用self.navigationItem.titleView = searchBar; 的小伙伴会发现titleView 高度变高

image.png

我使用的解决方法是

UIView *container = [[UIView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH - 80, 44)];
//    container.backgroundColor = [UIColor redColor];
mySearchBar.translatesAutoresizingMaskIntoConstraints = NO;
[container addSubview:mySearchBar];
//    self.navigationItem.titleView = container; 
self.navigationItem.titleView = mySearchBar; 
//    设成container会导致searchBar无响应事件,暂时还不清楚问题原因,
[mySearchBar mas_makeConstraints:^(MASConstraintMaker *make) {
    make.width.equalTo(SCREEN_WIDTH - 100);
    make.height.equalTo(34);
    make.centerX.equalTo(container);
    make.centerY.equalTo(container);
}];

或者 使用 Navigation 集成的 UISearchController

 self.navigationItem.searchController = mySearchController;

大标题的显示

在UI NavigationBar中,新增了一个属性prefersLargeTitles,将该属性设置为ture,NavigationBar会显示大标题.

navigationController?.navigationBar.prefersLargeTitles = true

Tableview Footer Header View

iOS 11 中发现之前设定的footerView 或者headerView 高度都变了。
解决方法:
如果调用了:

#pragma mark tableview delegate
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
    return 10;
}

- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section {
    return 10;
}

方法必须实现:

- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section {
    return nil;
}

-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
    return nil;
}

或者

estimaterRowHeight = 0;
estimaterSectionHeaderHeight = 0;
estimaterSectionFooterHeight = 0;

这是因为

estimaterRowHeight
estimaterSectionHeaderHeight
estimaterSectionFooterHeight

高度估算属性由默认0变成

UITableViewAutomaticDimension

所致

iOS 11 导致的定位失败问题

因为苹果现在增加了一项新的隐私保护功能

NSLocationAlwaysAndWhenInUseUsageDeion

并且原有的

NSLocationAlwaysUsageDeion

被降级为

NSLocationWhenInUseUsageDeion。

想要达到之前

NSLocationAlwaysUsageDeion 

的定位效果,需要在info.plist文件中添加

NSLocationAlwaysAndWhenInUseUsageDeion 和 NSLocationWhenInUseUsageDeion

两个就可以了

iPhone X 适配注意事项

1.隐藏导航栏的界面特别要注意,因为“耳朵”和 Safe Area 的原因,很有可能上面会露出小片空白。
2.列表页如果没有 tabBar,而且列表页可以拉到最底下,请在列表页最后留一点空白给手势区域。
3.列表页使用系统的 tabBar 那是完全自动适配的,但如果是自定义的 tabBar,请适当在 tabBar 底下留出空白给手势区域。

暂时就发现这些问题,有兴趣的朋友建议大家去看看WWDC 传送门
欢迎指正错误或者提出意见建议!

相关文章

  • iOS11及Xcode9适配问题汇总

    iOS11及Xcode9适配问题汇总 iOS11及Xcode9适配问题汇总

  • Xcode9新体验

    最近苹果刚正式推送了iOS11 和Xcode9,楼主本着体验新产品和早日做好适配的原则,下载更新了Xcode9,不...

  • iOS11及xcode9的适配问题

    iOS11及xcode9的适配问题关于iPhone X、iOS 11 、Xcode9,我们应该知道这些iOS 11...

  • IOS11适配遇到的问题总结(一)

    昨天手欠更新到Xcode9,顺便把手机也升级到IOS11,更新才发现还是以前的好,心累啊。开始各种适配,这里只备注...

  • ITunes Store operation failed. M

    前段时间适配了iOS11,但是用Xcode9运行真机app,iOS11以下的系统icon都正常,就是iOS11的机...

  • 简单使用safeAre适配UI

    ios11更新了。之前xcode9的bate版我也没时间看,知道今天要适配才发现问题来了。下午研究半天。感觉这玩意...

  • iOS 11 和Xcode9适配

    iOS 11 和Xcode9适配 Xcode9下相册等访问权限问题 iOS11苹果对相册的权限key做了调整,原来...

  • iOS11 Xcode9 更新适配

    随着iPhone 8和iPhone X 以及iOS 11 的发布更新,更新适配的工作又开始了? 首先更新到了Xco...

  • 适配iOS11

    1.三方-MWPhotoBrowser 适配iOS11 由于作者没有更新iOS11适配 - 需要手动添加代码 出现...

  • ios11 适配

    Xcode9下iOS11适配注意事项及无线部署调试 前言 看着网络上铺天盖地的iOS11的消息,作为一枚iOS从...

网友评论

    本文标题:iOS11 Xcode9 更新适配

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