gpt4 book ai didi

ios - Swift UIScrollView - 仅垂直滚动的正确实现

转载 作者:IT王子 更新时间:2023-10-29 05:20:00 24 4
gpt4 key购买 nike

提前致歉,因为我是 iOS 编程的初学者。

我想使用UIScrollView,因为要显示的内容超出了屏幕的高度。因此,我只想要垂直滚动而不是水平滚动。

我正在使用 Storyboard通过 AutoLayout 绘制 View 。

这是我的 UIViewControllerUIScrollView 的屏幕截图:

enter image description here enter image description here

然后我把标签改成那样的大文本

override func viewDidLoad() {
super.viewDidLoad()

self.label1Label.text = "Seize jours après la chute du président Blaise Compaoré, le Burkina Faso a un nouveau chef d'EtatA l'issue d'ultimes tractions, civils et militaires se sont accordés, lundi 17 novembre, sur le nom du diplomate Michel KafandoSeize jours après la chute du président Blaise Compaoré, le Burkina Faso a un nouveau chef d'EtatA l'issue d'ultimes tractions, civils et militaires se sont accordés, lundi 17 novembre, sur le nom du diplomate Michel Kafando"
self.label1Label.numberOfLines = 0
self.label1Label.sizeToFit()

我的问题是,如果我不手动设置 contentView 的宽度(在 UIScrollView 内),滚动是水平的,而不是垂直的。 (看下面的截图):

enter image description here

我已经尝试设置 contentSize,正如我在许多谷歌帖子中看到的那样,但没有成功:

self.scrollView.contentSize = CGSizeMake(400.0, 600.0)

如果我为我的 contentview 手动设置宽度(即:320pts),滚动将是垂直的(良好)但是根据 iphone 的大小,它不会覆盖整个宽度屏幕如下图所示:

enter image description here

问题是:什么是使用 UIScrollView 的正确实现来拥有一个尊重自动布局约束的 contentView(全屏:0top - 0bottom - 0left - 0right) 并且滚动仅垂直。

非常感谢您的帮助!

最佳答案

Mike Woelmer 在 Atomic Object 博客上展示了如何使用 Interface Builder 正确地做到这一点。

http://spin.atomicobject.com/2014/03/05/uiscrollview-autolayout-ios/

我在 github 上也只有自己的代码(没有 Storyboard实现)。

https://github.com/nadthevlad/AutolayotScrollview

您不想设置内容或 View 的高度或宽度。相反,您想使用自动布局引脚和约束来设置 ScrollView 的行为方式。

  1. 创建您的 UIScrollView *scrollView。

  2. 您想创建一个 UIView *contentView,您将把其余的 View 元素放入其中。

    [self.view addSubview:scrollView];
    [scrollView addSubview:contentView];
    [contentView addSubview:_label1];
    [contentView addSubview:_label2];
    [contentView addSubview:_label3];
    [contentView addSubview:_label4];
    [contentView addSubview:_label5];
    [contentView addSubview:_label6];
  3. 将 scrollView 的 4 个边缘固定到 self.view 的 4 个边缘

  4. 将 contentView 的顶部和底部边缘固定到 scrollView 的顶部和底部。

  5. 这是棘手的部分。要设置水平大小,您需要将 contentView 的前导(右)和尾随(左)边缘固定到 self.view 的前导边缘和尾随边缘而不是 scrollView。即使 contenView 是 scrollView 的 subview ,它的水平约束也会到达 scrollView 之外并连接到 self.view。

  6. 像往常一样将任何其他 View 元素固定到 contentView。

关于ios - Swift UIScrollView - 仅垂直滚动的正确实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27326924/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com