我在 iOS 中有一个以编程方式生成的 Collection View ,即它没有 Nib 。然后它被注入(inject)到页面上的 View 中。我正在使用 Xamarin Studio 和 MVVM Cross。当我运行该应用程序时,将生成集合并将其注入(inject)正确的位置。但是,当我向下滚动并且滚动条到达 Collection View 的底部时,它继续滚动,但滚动条离开了屏幕底部。
我在想 Collection View 没有坚持我将它注入(inject)的 View 的尺寸,所以它的高度太高了。我可以在代码中设置集合的高度吗?
编辑
好的,因为我正在使用 MVVM,所以我找到了一种方法来实现我在问题中所解释的内容。
我已经设法让我的 Collection View 附着在它被注入(inject)的 View 的顶部和底部。我通过使用 Cirrious 库 Cirrious.FluentLayouts.Touch 完成了这项工作,这是来自 Stuart Lodge 的精彩帖子 http://slodge.blogspot.co.uk/2013/07/playing-with-constraints.html .有了这个,我就不再需要在 Collection View 上指定高度,而是告诉它坚持父 View 的顶部和底部。
例如
//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)
);
最佳答案
好的,因为我正在使用 MVVM,所以我找到了一种方法来实现我在问题中所解释的内容。
我已经设法让我的 Collection View 附着在它被注入(inject)的 View 的顶部和底部。我通过使用 Cirrious 库 Cirrious.FluentLayouts 完成了此操作。Stuart Lodge 在这里发布了很棒的帖子 http://slodge.blogspot.co.uk/2013/07/playing-with-constraints.html .有了这个,我就不再需要在 Collection View 上指定高度,而是告诉它坚持父 View 的顶部和底部。
例如
//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)
);
N.b. 如果您正在使用 nib 文件 (.xib) 中已经存在的元素,那么您可能需要在添加约束之前添加以下行(如果您尝试添加的约束)开始冲突。
parentView.removeConstraints(constraints: parentView.Constraints)
关于ios - 如何利用约束 - FluentConstraints 和 FluentLayouts for Xamarin.iOS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19004091/