xcode怎么模拟ios11系统(还在为iOS11跟Xcode9的适配发愁?戳进

生活常识 2023-04-20 20:58生活常识www.baidianfengw.cn

Xcode无权设置中文。还在担心iOS11和Xcode9之间的适配?戳进去。那里 这是你想看的东西!

看着网上铺天盖地的iOS11新闻,作为iOS从业者谁会无动于衷?带着这个好奇心,我把macOS升级到了10.12.4(Xcode9需要10.12.4及以上版本),下载安装了Xcode9.0 Beta。

这是我的一个iOS交流群659170228,不管小白还是老司机,都欢迎入驻,大家一起交流成长!

单从这几天的体验来看,Xcode9不愧为大作,代码预览和编译速度都有了很大的提升。最吸引眼球的是Xcode9将版本管理系统分离成了一个模块,并支持同一个局域网下的无线部署和调试。说实话,我真的不喜欢。我不希望削减到Xcode8开发,如果我 我不担心在线项目的问题。

Xcode9下相册等访问权限问题

在之前的项目中,相机功能一直使用系统自带的PickerView。说实话,不是很好看。业余时间一直在开发定制相机(EVNCamera:给个StarO(_)O~)。在Xcode9之一个测试版开发相机功能的时候,发现原来的项目居然是crash。后来发现在iOS11下,苹果调整了相册的权限键。iOS11之后,原来的NSPhotoLibraryUsageDescription改为NphotolibraryAdusagedscription。

有关详细信息,请参见可可键。

,有些孩子 s鞋反馈使用Xcode 9 Beta3打包应用,使用原相册权限NSPhotoLibraryUsageDescription依然正常,我尝试在Xcode 9 Beta4中打包,使用原相册权限键依然死机。

近场通讯NFC权限

在iOS11中,苹果开放了NFC(近场通信),这大概也是推广ApplePay的策略。

使用近场通信时,在.plist中配置NFCReaderUsageDescription权限,案例步骤如下

iOS 11核心NFC -有样本代码吗?

iOS11需要适配的地方

(CGFloat)tableView:(UITableView )tableView heightForHeaderInSection:(NSInteger)section 不执行

默认情况下,一UITableView:自动调整大小是打开的,这可能意味着我们不再需要自己计算单元格的高度。只要我们设置这两个属性并约束布局,系统就会自动计算出单元格的高度。iOS11之后,默认开启自调整大小,包括页眉页脚。如果在项目中不使用estimatedRowHeight属性,那么在iOS11下会出现奇怪的现象,因为在iOS11之前,estimatedRowHeight默认为0,自动打开Self-Sizing后,contentSize和contentOffset都可能发生变化。您可以通过以下方式禁用它

self . table view . estimatedrowheight=0;

self . table view . estimatedsectionheaderheight=0;

self . table view . estimatedsectionfooterheight=0;

自动yadjustscrollviewinserts被放弃,TabView,CollectionView间距问题

解决方案

自动调整scrollviewinserts属性不再使用,我们需要使用UIScrollView

contentInsetAdjustmentBehavior

归功于替代吧。设置适当的枚举.

一个

2

if(@available(iOS11.0,){

self . table view . contentisetadjustmentbehavior=uiscrollviewcontentisetadjustmentnever;

}

否则{

self . automatically adjustsscrollviewinsets=NO;

}

NSLocationAlwaysAndWhenInUseUsageDeion

在iOS11中,原来的NSLocationAlwaysUsageDeion被降级为NSLocationWhenInUseUsageDeion。,在原始项目中使用了requestAlwaysAuthorization。

获取定位权限,而未在plist文件中配置NSLocationAlwaysAndWhenInUseUsageDeion,系统框不会弹出。

iPhone X状态栏图标元素结构变了

我们之前通过遍历foregroundView,UIStatusBarDataNetworkItemView可以找到wifi信号强度。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

-(void)getSignalStrength{

UIApplicationapp=[UIApplicationsharedApplication]

NSArraysubviews=[[[app valueForKey:@\"statusBar\"] valueForKey:@\"foregroundView\"] subviews]

NSStringdataNetworkItemView=nil

for(idsubview insubviews){

if([subview isKindOfClass:[NSClassFromString(@\"UIStatusBarDataNetworkItemView\")class]]){

dataNetworkItemView=subview

break

}

}

intsignalStrength=[[dataNetworkItemView valueForKey:@\"_wifiStrengthBars\"] intValue]

NSLog(@\"signal %d\",signalStrength)

}

由于iPhoneX的留海设计,所以元素与布局都发现了变化。

1

idstatusBar=[[UIApplicationsharedApplication] valueForKeyPath:@\"statusBar\"]

断点后执行

1

po[statusBar recursiveDescription]

即可查看新的结构

二navigation bar

1、导航栏新增了一种大标题样式,默认设置是不开启,所以不需要修改。

2、titleView支持autolayout,这要求titleView必须是能够自撑开的或实现了- intrinsicContentSize

解决方案

1

2

3

-(CGSize)intrinsicContentSize{

returnUILayoutFittingExpandedSize

}

三ScrollView

如果有一些文本位于UI滚动视图的内部,并包含在导航控制器中,现在一般navigationContollers会传入一个contentInset给其最顶层的viewController的scrollView,在iOS11中进行了一个很大的改变,不再通过scrollView的contentInset属性了,而是新增了一个属性adjustedContentInset,通过下面两种图的对比,能够表示adjustContentInset表示的区域

新增的contentInsetAdjustmentBehavior属性用来配置adjustedContentInset的行为,该结构体有以下几种类型

typedef NS_ENUM(NSInteger, UIScrollViewContentInsetAdjustmentBehavior) {

UIScrollViewContentInsetAdjustmentAutomatic,

UIScrollViewContentInsetAdjustmentScrollableAxes,

UIScrollViewContentInsetAdjustmentNever,

UIScrollViewContentInsetAdjustmentAlways,

}

@property(nonatomic) UIScrollViewContentInsetAdjustmentBehavior contentInsetAdjustmentBehavior

@property(nonatomic, readonly) UIEdgeInsets adjustedContentInset;

//adjustedContentInset值被改变的delegate

- (void)adjustedContentInsetDidChange

- (void)scrollViewDidChangeAdjustedContentInset:(UIScrollView )scrollView

UIScrollViewContentInsetAdjustmentBehavior 是一个枚举类型,值有以下几种:

automatic 和scrollableAxes一样,scrollView会自动计算和适应顶部和底部的内边距并且在scrollView 不可滚动时,也会设置内边距.

scrollableAxes 自动计算内边距.

never不计算内边距

always 根据safeAreaInsets 计算内边距

各位看管如果觉得写的还可以可以点一波关注跟收藏!

xcode9怎么安装ios11 xcode9和ios11哪个好

Copyright@2015-2025 白癜风网版板所有