gpt4 book ai didi

ios - UIScrollView contentInset 自动布局问题

转载 作者:行者123 更新时间:2023-11-28 23:56:53 28 4
gpt4 key购买 nike

我有一个自定义 UIView,其中有一个 UIScrollView 作为 subview 。我的问题是当 View 调整大小时,我希望调整 ScrollView 的大小并将其 contentInset 重置为此:

  scrollView.contentInset = UIEdgeInsets(top: self.bounds.height/2, left: 0, bottom: self.bounds.height/2, right: 0)

如何使用自动布局来做到这一点?

最佳答案

给定这样的 View 布局:

storyboard layout

您可以在容器 View MyView 更改大小时自动更改 UIScrollView contentInset 属性,使用 didSet View 的 bounds 属性的属性:

import UIKit

class MyView: UIView {

weak var scrollView: UIScrollView!

override var bounds: CGRect {
didSet {
scrollView.contentInset = UIEdgeInsets(top: bounds.height / 2, left: 0, bottom: bounds.height / 2, right: 0)
}
}
}

class ViewController: UIViewController {

@IBOutlet weak var myView: MyView!
@IBOutlet weak var scrollView: UIScrollView!

override func viewDidLoad() {
super.viewDidLoad()

myView.scrollView = scrollView
}
}

重要的是要注意,当内容插图发生变化时,您可能看不到它们,因为 ScrollView 的内容不会自动滚动到边缘,例如,当它的内容插图减少时。您必须尝试滚动才能看到内容插图确实发生了变化。

关于ios - UIScrollView contentInset 自动布局问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50972919/

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