我有一个带有侧边菜单的 UIView,该菜单来自左侧,并将右侧 View 从全屏推到较小的尺寸(全宽 - (菜单宽度))。
根据某人的建议,我通过更改菜单宽度约束中的常量来实现该效果:从 0 到 200。
(右侧 View )UIView 将保存我将加载到它的 View 具有此图像中看到的约束(菜单在左侧以蓝色显示):
我使用以下代码将新的 UIView 添加到 detailsView(上面提到的容器)中:
var viewNames = NSDictionary.FromObjectsAndKeys (new NSObject[] {
view.View
}, new NSObject[] {
new NSString ("detailsView")
});
detailsViewContainer.AddSubview (view.View);
view.View.TranslatesAutoresizingMaskIntoConstraints = false;
detailsViewContainer.AddConstraints (NSLayoutConstraint.FromVisualFormat ("H:|[detailsView]|", 0, new NSDictionary (), viewNames));
问题在于,当菜单折叠时,新添加的 View 始终具有全宽(1024),并且在菜单展开时,将 View 推到右侧的应用程序限制之外。
任何帮助将不胜感激。
提前致谢!
Best Answer-推荐答案 strong>
使主视图宽度约束(如果没有,则添加一个)为 <= 1024(不严格)。我会做以下事情:
|H:|-0-menuView-masterView-0-|
- 并在设计器中将 masterView 的宽度限制指定为 Less 或 Equal 1024
- 并在设计器中指定 menuView 的宽度约束等于 200。为其创建一个导出并在代码中动态更改
动画从 200 到 0 并在需要时返回。
地点:
- menuView 是菜单 UIView
- masterView 是主 UIView 占位符
当您的菜单(绿色 View )打开时,宽度约束将等于 200:
一旦您将约束设置为 0,您的 View 也会调整主占位符(橙色 View )的大小:
请通过以下链接找到 Storyboard示例:
https://dl.dropboxusercontent.com/u/19503836/Main.storyboard
关于ios - 当其他 View 大小增加或减小时调整 UIView 宽度,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/31265903/
|