情节提要 xib 在 viewDidLoad 后“卡住”
Posted
技术标签:
【中文标题】情节提要 xib 在 viewDidLoad 后“卡住”【英文标题】:Storyboard xib gets "stuck" after viewDidLoad 【发布时间】:2016-03-05 00:00:41 【问题描述】:我从一开始就使用 ios 进行编程,直到现在才使用故事板。我现在遇到的情况是,有时在我更改情节提要中的某些内容后,条目/第一个视图控制器会“卡住”。它的 viewDidLoad 方法被调用,但 viewWillAppear 从未被调用。
撤消更改通常不会解决问题。取而代之的是做一些随机的事情,比如删除一个插座然后重新添加,有时会让视图控制器正确加载。它变得非常烦人,因为有时需要 15-20 分钟的随机更改和恢复。我没有在在线搜索中找到任何相关内容。
我使用的是 Xcode 7.2.1。 Interface Builder 中没有显示布局问题,控制台日志也没有消息。
编辑: 我能够在 Interface Builder 中找到一个小的变化,当它到位时会导致加载卡住,而当它被移除时,它工作正常。这是可重复的。这是故事板中相关部分的两个差异。第一个是将主要约束应用于所有尺寸类别,而不仅仅是紧凑宽度。这将创建第二个更改,即对视图大小和位置的更新。这些是唯一的差异
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="wGJ-ag-Esv" userLabel="Label">
- <rect key="frame" x="33" y="20" />
+ <rect key="frame" x="41" y="20" />
<fontDescription key="fontDescription" name="Calibri-Light" family="Calibri" pointSize="17"/>
<color key="textColor" red="0.7843137255" green="0.7843137255" blue="0.7843137255" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
- <constraint firstItem="wGJ-ag-Esv" firstAttribute="leading" secondItem="faX-t4-9PC" secondAttribute="trailing" id="OTw-xP-VtH">
- <variation key="widthClass=compact" constant="4"/>
- </constraint>
+ <constraint firstItem="wGJ-ag-Esv" firstAttribute="leading" secondItem="faX-t4-9PC" secondAttribute="trailing" constant="4" id="OTw-xP-VtH"/>
【问题讨论】:
我完全同意我在挥手。困难在于它是一个相当大的项目中的一个heisenbug。我的简短测试并没有用一个简单的例子复制任何问题。我没有 UITextView,但这正是我希望发现的信息和潜在陷阱。 【参考方案1】:我相信我找到了问题所在。入口视图控制器的视图出口被意外设置为子视图。我不知道为什么它通常会起作用并且随机更改会解决问题,但我相信这就是问题所在。
【讨论】:
以上是关于情节提要 xib 在 viewDidLoad 后“卡住”的主要内容,如果未能解决你的问题,请参考以下文章
我在 xib(加载 xib)的帮助下创建了项目,现在我想在特定的按钮选项卡中添加情节提要并打开情节提要