我是Cocoa的新手,我正在编写自定义InspectorView
。
父视图(InspectorView
)包含多个子视图(InspectorCategories
)。
如果我解开一个类别(子视图),我必须调整/重新播放我的父母视图吗? 我发现这不可能通过自动调整大小的掩码 - 这是正确的吗?
我在父母视图中使用resizeSubviewsWithOldSize
进行了尝试,但在调整子视图大小时没有调用它。
我该如何实现这种行为?
答案 0 :(得分:2)
有两个部分可以完成我认为你想要的东西:
(a)在父视图中,覆盖sizeThatFits:方法,以便计算适合调整大小的子视图的新大小。
(b)在子视图中,覆盖setFrame:方法,在更改帧大小后,调用[self.superview sizeToFit]来调整superview的大小,可能是这样的:
-(void)setFrame:(CGRect)newFrame
{
[super setFrame:newFrame];
[self.superview sizeToFit];
}
答案 1 :(得分:0)
不,通过自动调整遮罩是不可能的。自动调整遮罩定义了当超视图更改边界时视图的大小调整方式。
子视图应该让其超级视图知道它需要的大小,例如通过委托调用。然后superview应调整自身和子视图的大小。