toolsVersion="11201" 弄乱了我的故事板
Posted
技术标签:
【中文标题】toolsVersion="11201" 弄乱了我的故事板【英文标题】:toolsVersion="11201" is messing my storyboard 【发布时间】:2016-10-01 19:07:06 【问题描述】:将我的 xCode 更新到 8.0 并在我的设备上运行我的应用程序后,我注意到我在情节提要中的集合视图混乱并且框架不再适合视图。
只有当我打开故事板时才会发生这种情况(似乎在我第一次在 xcode 中打开文件之后,xcode 正在添加一些属性)。 当我用旧的故事板替换故事板然后构建应用程序而不打开它时,一切都按预期工作。
经过几个小时的搜索可能是什么原因并比较了故事板源代码(在打开它后旧的和新的之间),我发现原因是在故事板源顶部找到的 toolsVersion 属性代码。
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0"
toolsVersion="11201" systemVersion="15G1004" targetRuntime="ios.CocoaTouch"
propertyAccessControl="none" useAutolayout="YES" colorMatched="YES"
initialViewController="wZn-Em-z41">
当我替换 toolsVersion="11201" with toolsVersion="10116"
时,一切都会恢复正常。
如何将工具版本强制设置为某个值?以及这个属性是什么以及为什么它会弄乱我的约束和框架。
感谢有关此问题的任何信息。
【问题讨论】:
我遇到了完全相同的问题......经过数小时的调查,我对 toolsVersion 得出了完全相同的结论(10116 工作正常,11201 搞砸了我的一个表格视图)。似乎是 Xcode 8 的错误 :( 所以我确定了我的问题...我正在根据图像视图的高度设置表格视图的底部 contentInset。出于某种原因,Xcode 8 toolsVersion (11201) 导致该图像视图报告其大小为 1000 x 1000。我需要深入了解图像视图出现问题的原因,但这就是为什么我的 UITableView 太多了“内容。”你的问题可能类似吗? 似乎新的 Xcode 8 toolsVersion (11201) 从情节提要中删除了很多这里的问题是,对于 toolsVersion 11201 (Xcode 8),具有完全限定约束的视图似乎不再具有在情节提要中指定的帧(因为约束将在运行时确定帧)。
因此,在评估约束之前,您不能依赖框架(即不要在 viewDidLoad 或 viewWillAppear 中使用框架)。一旦评估了约束,框架似乎就很好了。在评估之前,帧似乎报告为 1000 x 1000(至少,在各种情况下对我来说都是这样)。
因此有两种解决方案:1) 为您的约束提供一个出口并使用它而不是依赖于框架,或 2) 在评估约束后使用框架(例如,在 viewDidAppear 方法中)。
【讨论】:
或使用-viewDidLayoutSubviews
,注意它可能会被多次调用以上是关于toolsVersion="11201" 弄乱了我的故事板的主要内容,如果未能解决你的问题,请参考以下文章
PlatformToolset 和“已删除功能”错误 (C2280)
Visual Studio版本与ToolsVersion与工具集版本号对应版本号
msbuildtoolspath is not specified for the toolsversion xx
在visual studio 2010上编译一个项目时系统报错,提示了问题补充的错误信息。 这样的问题怎么解决?