【发布时间】:2020-04-25 12:04:15
【问题描述】:
在 Android 中,我们可以在视图的 Visibility 上使用 ViewStates.Gone,但在 iOS 中,如果将 Hidden 属性设置为 false,视图仍会占用空间。 我正在使用自动布局,所以我想改变尺寸约束,例如:
FilterLayout.HeightAnchor.ConstraintEqualTo(0f).Active = true;
它工作一次。 但是当我尝试通过调用再次扩展视图时
FilterLayout.HeightAnchor.ConstraintEqualTo(0f).Active = false;
或者只是设置一个新值:
FilterLayout.HeightAnchor.ConstraintEqualTo(200f).Active = true;
或者写两行, 大小不变。
(FilterLayout的大小最初是由它的子视图定义的,第一个子视图的top匹配它的topMargin,最后一个子视图的底部匹配它的bottomMargin。)
我什至尝试更改相邻容器的约束,使其不附加到 FilterLayout,结果是,FilterLayout 被压缩,并且将约束更改回没有任何作用。
页面顶部是 SearchLayout,FilterLayout 下方,UserSearchList 下方。
隐藏 FilterLayout 的工作原理:
FilterLayout.BottomAnchor.ConstraintEqualTo(UserSearchList.TopAnchor).Active = false;
UserSearchList.TopAnchor.ConstraintEqualTo(FilterLayout.BottomAnchor).Active = false;
SearchLayout.BottomAnchor.ConstraintEqualTo(UserSearchList.TopAnchor).Active = true;
UserSearchList.TopAnchor.ConstraintEqualTo(SearchLayout.BottomAnchor).Active = true;
尝试再次显示它:
SearchLayout.BottomAnchor.ConstraintEqualTo(UserSearchList.TopAnchor).Active = false;
UserSearchList.TopAnchor.ConstraintEqualTo(SearchLayout.BottomAnchor).Active = false;
FilterLayout.BottomAnchor.ConstraintEqualTo(UserSearchList.TopAnchor).Active = true;
UserSearchList.TopAnchor.ConstraintEqualTo(FilterLayout.BottomAnchor).Active = true;
只设置一个视图的约束,或者两者都设置都没有关系,结果是一样的。
【问题讨论】:
标签: ios xamarin.ios autolayout collapse