我正在尝试为Xcode 9.1中的UILabel创建偏移背景。
我有一个包含UILabel的UIView的@IBDesignable
子类。我有下一个限制:
我也覆盖了intrinsicContentSize
:
override var intrinsicContentSize: CGSize {
get {
var size = self.label.intrinsicContentSize
size.width += offset
size.height *= self.mult
return size
}
}
现在有时候,如果我调试代码并在被覆盖的intrinsicContentSize
中停止断点,但主要是在Interface Builder中,我会得到一些像20,000,010
或类似的宽度大得可笑的大值。它们非常随意但非常大。上次Interface Builder抱怨你只能生成10,000x10,000 UIView。
在其他情况下,视图intrinsicContentSize.width为0,并且为我的视图设置intrinsicContentSize的占位符没有帮助。
如果你转到其他swift文件并返回它可以改变。有时它显示正确的价值,但在大多数情况下都是虚假的。
最终的布局通常是我的意图,所以它在运行时工作,但我几乎不能在这个视图中使用Interface Builder。
我还尝试使用空文本或一个像'。'这样的字符文本初始化UILabel。和框架(0,0,1,1),因为我认为可能零帧和零文本提供这种行为,但它似乎也无济于事。
你有什么想法我可以解决这个问题所以我可以在Interface Builder中使用我的OffsetLabel吗?为什么会这样?
答案 0 :(得分:0)
似乎在重新启动Xcode之后,它按预期工作了一段时间。