我正在尝试创建一个存储在nib中的自定义UIView,以便我可以使用Interface Builder定位它。
我创建了一个名为RippleView的类,它扩展了UIView。我想使用Interface Builder将此视图定位为子视图。为此,我将一个新视图拖到Interface Builder中的现有视图中,并为其提供了RippleView类标识。然后我将我的RippleView插座链接到我刚创建的视图。
在RippleView类中,我实现了initWithCoder,它除了调用[super initWithCoder ...]之外什么都不做。在awakeFromNib中,我继续并初始化我的代码。
现在,出于某种原因,如果我尝试在awakeFromNib中检查RippleView的边界,我会得到荒谬的值(0宽度和1081171968高度)。这些边界在drawRect中没有变化,所以我认为这不是一个未被初始化的视图的问题。我在touchesMoved事件处理程序中获得了类似的值。
当我以编程方式创建子视图(initWithFrame)时,我没有遇到任何问题。什么可能导致框架界限变得混乱?
答案 0 :(得分:2)
解决!这个问题与代码无关。 UIView边界是浮点数,我将它们打印为整数。这样的事情将程序员与辍学分开:p
答案 1 :(得分:0)
你可以发布你的initWithCoder:实现吗?如果你没有设置self的值,或者你拼错了initWithCoder:,你可能会看到这些问题。您是否尝试在initWithCoder中设置断点:确保它被调用?