如何利用约束 - Xamarin.iOS的FluentConstraints和FluentLayouts

时间:2013-09-25 11:48:41

标签: ios layout xamarin.ios constraints mvvmcross

我在iOS中有一个以编程方式生成的集合视图,即它没有笔尖。然后将其注入页面上的视图。我正在使用Xamarin Studio和MVVM Cross。当我运行应用程序时,会生成集合并将其注入正确的位置。但是当我向下滚动并且滚动条碰到集合视图的底部时,它会继续滚动但滚动条会从屏幕底部移开。

我认为集合视图没有粘贴视图的尺寸,因为它的高度太高。我可以在代码中设置集合的高度吗?

修改

好的,因为我使用MVVM,我找到了一种方法来实现我在我的问题中解释的内容。

我设法让我的集合视图遵循它注入的视图的顶部和底部。我是通过Stuart Lodge http://slodge.blogspot.co.uk/2013/07/playing-with-constraints.html使用Cirrious图书馆 Cirrious.FluentLayouts.Touch 这篇精彩帖子完成的。有了这个,我已经根除了在集合视图上指定高度的需要,而是告诉它要坚持父视图的顶部和底部。

e.g。

//Add constraints between collection view and its container in page
parentView.SubviewsDoNotTranslateAutoresizingMaskIntoConstraints();
parentView.AddConstraints(
  collectionsView.AtTopOf(parentView,0),
  collectionsView.AtBottomOf(parentView,0),
  collectionsView.AtLeftOf(parentView,0),
  collectionsView.AtRightOf(parentView,0)
);

2 个答案:

答案 0 :(得分:2)

好的,因为我使用MVVM,我找到了一种方法来实现我在我的问题中解释的内容。

我设法让我的集合视图遵循它注入的视图的顶部和底部。我是通过使用Cirrious图书馆Cirrious.FluentLayouts.Touch在这里从Stuart Lodge http://slodge.blogspot.co.uk/2013/07/playing-with-constraints.html发表了这篇文章。有了这个,我已经根除了在集合视图上指定高度的需要,而是告诉它要坚持父视图的顶部和底部。

<强> e.g。

//Add constraints between collection view and its container in page
parentView.SubviewsDoNotTranslateAutoresizingMaskIntoConstraints();
parentView.AddConstraints(
  collectionsView.AtTopOf(parentView,0),
  collectionsView.AtBottomOf(parentView,0),
  collectionsView.AtLeftOf(parentView,0),
  collectionsView.AtRightOf(parentView,0)
);

Nb 如果您正在使用nib文件(.xib)中已存在的元素,那么在添加约束之前,如果您尝试添加约束,则可能需要添加以下行开始发生冲突。

parentView.removeConstraints(constraints: parentView.Constraints)

答案 1 :(得分:1)

在FluentLayout上看一些关于自动布局的演示

https://www.evernote.com/l/AJPLFfvOaXVLxZNme8s9_PjjaazwRP-Bl9Y

此致 仲