gpt4 book ai didi

ios - 如何使用 Swift 为从 Storyboard生成的 UIScrollView 创建一个 setter?

转载 作者:可可西里 更新时间:2023-11-01 00:53:51 30 4
gpt4 key购买 nike

使用界面构建器,我将一个 UIScrollView 拖到我的 ImageViewController 上。

我从 ScrollView 控制拖动到我的 ImageViewController 上以获得一个 IBOutlet 来控制 scrollView。其中添加了代码:

@IBOutlet var scrollView : UIScrollView

现在我想在 scrollView 初始化后立即设置一个属性。

在 objective-c 中,您可以编写此函数来实现它:

-(void)setScrollView:(UIScrollView *)scrollView
{
_scrollView = scrollView
self.scrollView.contentSize = self.image ? self.image.size : CGSizeZero;
}

这将在 ScrollView 初始化后立即设置 contentSize。

目前在 Swift 中,我通过将 self.scrollView 包装在一个带有 get 函数的新 var 中来实现类似的功能,如下所示:

var sgScrollView: UIScrollView
{
get {
self.scrollView.contentSize = self.image!.size
return self.scrollView!
}
}

然后在 viewDidLoad 中不使用此代码:

self.scrollView.addSubview(self.imageView)

我用这个:

self.sgScrollView.addSubview(self.imageView)

在获取 scrollView 时设置内容大小。

但是在我关注的 objective-c 教程中,他们在初始化和设置 scrollView 后立即设置内容大小,就像上面的 obj-c 函数一样。我如何使用 Swift 做到这一点?

最佳答案

这将是使用 Swift 的属性观察器 的好地方。您可以在类中的任何属性上定义 willSetdidSet 观察者。为此你需要一个 didSet 观察者:

class ImageViewController : ViewController {
var image : UIImage?
@IBOutlet var scrollView : UIScrollView {
didSet {
self.scrollView.contentSize = self.image?.size ?? CGSizeZero
}
}

...
}

关于ios - 如何使用 Swift 为从 Storyboard生成的 UIScrollView 创建一个 setter?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24358030/

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