【问题标题】:Adjust UIView width when other views increase or decrease in size当其他视图大小增加或减小时调整 UIView 宽度
【发布时间】:2015-07-07 10:22:02
【问题描述】:

我有一个带有侧边菜单的 UIView,该菜单来自左侧,并将右侧视图从全屏推到更小的尺寸(全宽 - (菜单宽度))。 根据某人的建议,我通过更改菜单宽度约束中的常量来实现该效果:从 0 到 200。

(右侧视图)UIView 将保存我将加载到它的视图具有此图像中看到的约束(菜单在左侧以蓝色显示):

我将新的 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));

问题在于,当菜单折叠时,新添加的视图始终具有全宽 (1024),而且当菜单展开时,将视图推到右侧的应用程序限制之外。 任何帮助将不胜感激。

提前致谢!

【问题讨论】:

    标签: ios uiview xamarin xamarin.ios


    【解决方案1】:

    使主视图宽度约束(如果没有,则添加一个)为

    • |H:|-0-menuView-masterView-0-|
    • 并在设计器中将 masterView 的宽度约束指定为小于或等于 1024
    • 并在设计器中指定 menuView 的宽度约束等于 200。为其创建一个出口并在代码中动态更改 动画从 200 到 0 并在需要时返回。

    地点:

    • menuView 是菜单 UIView
    • masterView 是主 UIView 占位符

    当您的菜单(绿色视图)打开时,宽度约束将等于 200:

    一旦您将约束设置为 0,您的视图也会调整主占位符(橙色视图)的大小:

    请通过以下链接找到故事板示例: https://dl.dropboxusercontent.com/u/19503836/Main.storyboard

    【讨论】:

    • 感谢@Alexey 的帮助,但您的许多建议已经到位。缺少的一个是宽度小于或等于 1024。但是添加一个并没有解决问题。还有其他想法吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-02
    • 2013-04-12
    • 2012-08-28
    • 1970-01-01
    • 2016-08-23
    相关资源
    最近更新 更多