调整子视图的大小并调整大小/窗口大小
问题描述:
我的窗口结构如下:NSWindow - > NSView - > NSTabView - > NSScrollView - > NSTextView。如果我使用setFrameSize更改NSScrollView的大小:superviews/window不会调整大小以容纳我的更大或更小的NSScrollView。是否有可能以编程方式让窗口等自动调整大小,当我设置子视图的大小,或者我需要以某种方式计算所有的UI组件的大小和调整窗口本身?预先感谢您的帮助或指导。调整子视图的大小并调整大小/窗口大小
答
有没有内置的方式来做到这一点。你必须自己计算大小。假设层次结构中的所有视图都设置为正确自动调整大小,则可以更改窗口的框架并让自动调整大小来完成其工作。
答
以下方法创建上的UIView类别:
- (void) resizeSuperviewsToContain {
UIView* view = self;
while(view.superview) {
CGFloat maxY = CGRectGetMaxY(view.frame);
CGRect superViewFrame = view.superview.frame;
if(superViewFrame.size.height < maxY) {
superViewFrame.size.height = maxY;
view.superview.frame = superViewFrame;
}
view = view.superview;
}
}
感谢Joshua。现在至少我可以停止搜索这些不存在的方法。 :) – stdout 2010-07-21 11:45:05