如果我在Xcode
8 GM中打开一个xib或故事板,并选择一个设备/方向为"查看为"在构建和运行我的应用程序时,涉及自定义UIView
类的部分代码开始崩溃。这适用于我对xib / storyboard进行的任何编辑。
这是我的自定义UIView
的调用堆栈,在设置我的" View as"之后崩溃了在我的主要故事板中(每次都在xibs中也会发生):
initWithCoder
layoutIfNeeded
(在我致电setNeedsLayout
之后调用)
由于未捕获的异常终止应用' CALayerInvalidGeometry', 原因:' CALayer位置包含NaN:[97 nan]'
第一次抛出调用堆栈:(0x182adedb0 0x182143f80 0x182adecf8 0x1855b95d4 0x1855b9530 0x1012d2474 0x1855b94c8 0x18822d05c 0x18822ced8 0x18822d008 0x187c30618 0x187c421cc 0x1885a5ed8 0x187c83a48 0x187c341e4 0x1855c298c 0x1855bd5c8 0x187c4b0a4 0x1001c2b0c 0x1001c19ac 0x10010cecc 0x1881106b0 0x188234438 0x1882345b0 0x188234180 0x187f420e4 0x188234438 0x188234180 0x1835957b0 0x188234438 0x1882345b0 0x188234180 0x1884d44c0 0x188234438 0x188234180 0x1835957b0 0x1881106b0 0x188234438 0x188234180 0x188110354 0x188234438 0x1882345b0 0x188234180 0x18810f688 0x187fb1230 0x187d76118 0x187c388ec 0x187c38844 0x187c3f59c 0x187c3ca88 0x187cb2fa4 0x187ede3ac 0x187ee25f0 0x187edf764 0x18447f7ac 0x18447f618 0x18447f9c8 0x182a9509c 0x182a94b30 0x182a92830 0x1829bcc50 0x187ca794c 0x187ca2088 0x10027d938 0x18255a8b8)
对此问题的任何见解都非常感谢。我认为事情已经过去了#34;"然而,并且可能触发initWithCoder
中的布局是一种糟糕的形式,但它以前从来不是一个问题,它只是Xcode
8 GM中xibs / storyboards的问题。
答案 0 :(得分:0)
为了将来有人在谷歌面前绊倒这一点,我很确定这两个帖子可以解释这个问题:
XCode8 initWithCoder frame Size
Proper practice for subclassing UIView?
简而言之:Xcode 8会更改xib,以便他们不会向Index([3,6])
UIView's
报告(虚假)帧,导致我的崩溃。正如询问/怀疑在initWithCoder
中做任何布局都是不好的形式。 Xcode 8只是强行纠正我的错误。