动态调整视图大小 osx

Posted

技术标签:

【中文标题】动态调整视图大小 osx【英文标题】:Resizing views dynamically osx 【发布时间】:2015-04-27 22:00:44 【问题描述】:

我在顶部有两个视图和一个按钮,我希望在按下按钮时隐藏/显示一个,并让其他视图调整到窗口边缘的大小。

左上角的按钮链接到 IBAction,该 IBAction 使用此 mainscroll.hidden = true 隐藏下部视图。我不知道如何调整/移动其他视图的大小,因此文本框/按钮位于窗口底部,即底部没有可见的灰色空间。我想以编程方式执行此操作。

http://imgur.com/a/FGH7i

【问题讨论】:

您可能想要使用 AutoLayout 约束。查看此链接了解自动布局的介绍。:developer.apple.com/library/ios/documentation/UserExperience/… 这很接近“这是我的要求,请为我实现”。在您不知道如何做某事的情况下,分拆一个小型原型。尝试通过在运行时检查对象(NSobjects?我不知道,你的月语太奇怪了)来实现你的目标。通过智能感知浏览您的对象图以寻找可能的候选对象。研究也有帮助。如果你不成功,你至少有一个 SSCCE 可以用来构建问题,并且其他人可以用来构建他们的答案。 【参考方案1】:

您可以通过以下方式以编程方式调整 topView:

float aHeight = [mainscroll frame].size.height;
NSRect aRect = [topView frame];
aRect.size.height += aHeight;
aRect.origin.y -= aHeight;
[topView setFrame:aRect];

【讨论】:

以上是关于动态调整视图大小 osx的主要内容,如果未能解决你的问题,请参考以下文章

如何在堆栈视图中动态调整文本视图的大小

动态添加视图并调整父视图组的大小

使用自动布局动态更改子视图后调整超级视图的大小

动态调整视图大小(拖动运动)时自动布局约束中断

当子视图添加越界时动态调整父视图大小

动态调整大小的视图定位