我目前正在Xcode 6中的Storyboard视图中工作。我有一个带有几个按钮元素的ScrollView容器。我想有一排三个元素的第一个和最后一个对齐他们各自(左或右)的边缘。
我遇到的问题是第三个元素。我一直在把它的尾随空间设置为10到Superview,但是这个元素没有出现在屏幕上。对于所有边,ScrollView的约束设置为0。
在没有ScrollView的情况下,我也做过类似的操作,而且间距设置得很正确,只有在ScrollView中才没有正确地对齐。
发布于 2015-08-27 16:50:50
ScrollView以不同的方式对待约束。它使用前导/尾随约束来确定内容可以滚动多远。因此,当您使用常量== 10创建一个尾随约束时,滚动视图认为,如果您的视图不适合于ScrollView水平,并且用户试图滚动它们,则在第三个视图的右侧应该有10点宽的空空间。
如果我正确地理解了你,你希望你的三个视图适合在屏幕上(水平)。在这种情况下,除了前导/尾随约束之外,还必须以某种方式设置它们的宽度。
最实际的方法(在我看来)是向您的contentView中添加某种scrollView,以便其他视图成为该contentView的子视图。然后将contentView中的前导/尾随约束添加到scrollView 中,为contentView添加一个宽度约束(例如,使用const == 0和contentView.width == scrollView.width的前导/尾随约束)。然后,您可以像往常一样将视图添加为contentView的子视图。
发布于 2015-08-27 17:05:18
在scrollView中放一个视图。设置对视图引导、尾随、顶部、底部、高度和宽度的约束。
在该视图中添加按钮,根据需要设置约束。它们将被正确显示。
要管理scrollView contentSize,只需更新容器视图的约束(您已经在scrollView中添加了该约束),就像您不希望水平滚动一样,然后更新如下
self.myViewWidthConstraint.constant =320;
[self.myView updateConstraints];
https://stackoverflow.com/questions/32255119
复制相似问题