自动布局中仅具有固定宽度的垂直滚动视图
Scrollview vertical only with fixed width in Autolayout
在swift中如何将滚动视图的宽度设置为屏幕尺寸的宽度?
我尝试设置正确的前导和尾随边界,但我的 aspectscalefill 图像一直在拉伸整个帧。
我试图强制视图为屏幕的宽度并只允许垂直滚动。
你的问题是由于你将元素添加到 storyBoard 的 scrollView 而引起的。
在 StoryBoard 中你需要:
1) 添加scrollView,如果你需要在屏幕的宽度那么将它的尾部和前导空格设置为0
2) 取消选中属性检查器中的 "allow horizontal scrolling"
在你的代码中
1) 将 scrollView's
contentSize
设置为您想要的任何大小。
1.1) 在你的代码中你需要像这样设置 contentView 的大小
scroller.contentSize = CGSizeMake(your width, your height);
这是非常重要的一步,如果不设置size,scrollView将无法滚动。将 scrollView 视为 window,将 contentView 视为视图。如果 contentView 与 scrollView 的大小相同,则 scrollView 无法滚动到任何地方(所有 contentView 都适合 scrollView)为了创建滚动,您需要使 contentView 比 scrollView 本身大
2) 通过调用
开始将您的元素添加到 scrollView's
contentView
[scroller addSubView:<your view>];
这会将您的观点添加到 scrollView's
contentView
并且将会
如果你想制作一个带有自动布局的滚动视图,试试这个。根本没有代码,因此您必须将内容从库中拖到 Xcode.
的右侧
在您的视图控制器中,将滚动视图的大小拖动并放置到您想要的任何大小,但看起来您想使其与屏幕大小相同。将所有边缘固定到视图控制器的边缘。固定尾随、前导、顶部和底部。
现在,不要将项目放置在滚动视图中,而是将另一个视图放置在滚动视图中。使用这个新视图,您将放置所有项目。您很可能必须向上或向下移动视图才能将它们全部放置并调整视图大小。然后,您可以对项目设置任何您想要的约束。当所有项目都就位后,将新视图的框架设置回 x = 0 和 y = 0。
然后您将按如下方式放置约束。 Select 新视图并固定到顶部、底部、尾部和前导,然后在容器中居中。这将产生一个与某个负数垂直的约束。在情节提要中概述 select 这个约束并将其设置为零。
您现在可以垂直滚动。如果您有任何问题,请告诉我。
我创建了一个单视图应用程序,并在具有四个约束(顶部、左侧、右侧、底部)的故事板中添加了一个 UIScrollView
。我在 viewDidLoad()
中添加了以下代码。一切正常。我的图像只是垂直滚动,而不是水平滚动。不需要额外的设置。
@IBOutlet weak var scrollView: UIScrollView!
override func viewDidLoad() {
super.viewDidLoad()
// Just as an example, I make a size with same with of the view
// and twice the height of the view.
let size = CGSizeMake(
self.view.frame.size.width,
self.view.frame.size.height * 2);
// Load an image and make a image view
let image = UIImage(named: "im.jpg")!
let imageView = UIImageView(image: image)
imageView.frame = CGRect(
origin: CGPoint(x: 0, y: 0),
size: size);
imageView.contentMode = UIViewContentMode.ScaleToFill;
// Add the image view to scroll view
scrollView.addSubview(imageView)
scrollView.contentSize = size;
}
在swift中如何将滚动视图的宽度设置为屏幕尺寸的宽度?
我尝试设置正确的前导和尾随边界,但我的 aspectscalefill 图像一直在拉伸整个帧。
我试图强制视图为屏幕的宽度并只允许垂直滚动。
你的问题是由于你将元素添加到 storyBoard 的 scrollView 而引起的。
在 StoryBoard 中你需要:
1) 添加scrollView,如果你需要在屏幕的宽度那么将它的尾部和前导空格设置为0
2) 取消选中属性检查器中的 "allow horizontal scrolling"
在你的代码中
1) 将 scrollView's
contentSize
设置为您想要的任何大小。
1.1) 在你的代码中你需要像这样设置 contentView 的大小
scroller.contentSize = CGSizeMake(your width, your height);
这是非常重要的一步,如果不设置size,scrollView将无法滚动。将 scrollView 视为 window,将 contentView 视为视图。如果 contentView 与 scrollView 的大小相同,则 scrollView 无法滚动到任何地方(所有 contentView 都适合 scrollView)为了创建滚动,您需要使 contentView 比 scrollView 本身大
2) 通过调用
开始将您的元素添加到scrollView's
contentView
[scroller addSubView:<your view>];
这会将您的观点添加到 scrollView's
contentView
并且将会
如果你想制作一个带有自动布局的滚动视图,试试这个。根本没有代码,因此您必须将内容从库中拖到 Xcode.
的右侧在您的视图控制器中,将滚动视图的大小拖动并放置到您想要的任何大小,但看起来您想使其与屏幕大小相同。将所有边缘固定到视图控制器的边缘。固定尾随、前导、顶部和底部。
现在,不要将项目放置在滚动视图中,而是将另一个视图放置在滚动视图中。使用这个新视图,您将放置所有项目。您很可能必须向上或向下移动视图才能将它们全部放置并调整视图大小。然后,您可以对项目设置任何您想要的约束。当所有项目都就位后,将新视图的框架设置回 x = 0 和 y = 0。
然后您将按如下方式放置约束。 Select 新视图并固定到顶部、底部、尾部和前导,然后在容器中居中。这将产生一个与某个负数垂直的约束。在情节提要中概述 select 这个约束并将其设置为零。
您现在可以垂直滚动。如果您有任何问题,请告诉我。
我创建了一个单视图应用程序,并在具有四个约束(顶部、左侧、右侧、底部)的故事板中添加了一个 UIScrollView
。我在 viewDidLoad()
中添加了以下代码。一切正常。我的图像只是垂直滚动,而不是水平滚动。不需要额外的设置。
@IBOutlet weak var scrollView: UIScrollView!
override func viewDidLoad() {
super.viewDidLoad()
// Just as an example, I make a size with same with of the view
// and twice the height of the view.
let size = CGSizeMake(
self.view.frame.size.width,
self.view.frame.size.height * 2);
// Load an image and make a image view
let image = UIImage(named: "im.jpg")!
let imageView = UIImageView(image: image)
imageView.frame = CGRect(
origin: CGPoint(x: 0, y: 0),
size: size);
imageView.contentMode = UIViewContentMode.ScaleToFill;
// Add the image view to scroll view
scrollView.addSubview(imageView)
scrollView.contentSize = size;
}