繁体   English   中英

Swift:创建一个可选的 IBOutlet

[英]Swift: Create an optional IBOutlet

我正在编写一个 UIViewController 供其他人继承。 这个 UIViewController 中有一个 UIScrollView 。 目前,我像这样创建 UIScrollView:

scrollView.contentSize = CGSize(width: viewWidth * 2, height: viewHeight)
scrollView.delegate = self
view.addSubview(scrollView)
view.sendSubview(toBack: scrollView)

这有效,但为了使 UIViewController 可扩展,我希望能够为它提供一个 IBOutlet,人们可以将他们的 UIScrollViews 连接到故事板。

如果有人通过故事板连接 UIScrollView,我会使用该滚动视图。 否则,我会使用上面的代码自己制作。

我以前在图书馆看到过这个,但不记得图书馆,所以我无法参考如何去做。

只需创建一个插座:

@IBOutlet var scrollView: UIScrollView!

viewDidLoad ,如果scrollViewnil ,则表示插座未连接。 您可以使用一个简单的 if 语句来检查:

if scrollView == nil {
    scrollView = UIScrollView(...)
    scrollView.contentSize = CGSize(width: viewWidth * 2, height: viewHeight)
    scrollView.delegate = self
    view.addSubview(scrollView)
    view.sendSubview(toBack: scrollView)
}
// do the things you want to do with the scroll view here.

Sweeper 的回答是正确的,但就个人而言,这没有必要——如果你愿意的话,这不是“迅速”的。

在 IBOutlet 中,只需替换! ? . 那就行了。 最简单。 我不得不对其进行测试以确保它正常工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM