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,以便人们可以将他们的 UIScrollView 连接到故事板。
如果有人通过故事板连接了 UIScrollView,我会使用那个 scrollView。否则,我会使用上面的代码自己制作它。
我以前在图书馆看过这个,但不记得图书馆了,所以我无法参考如何做。
只需创建一个出口:
@IBOutlet var scrollView: UIScrollView!
在viewDidLoad
中,如果scrollView
为nil
,则表示插座未连接。您可以使用一个简单的 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 中,只需将 !
替换为 ?
。这样就可以了。最简单。我必须对其进行测试以确保其正常工作。
我正在编写一个 UIViewController 供其他人继承。这个 UIViewController 里面有一个 UIScrollView。目前,我这样创建 UIScrollView:
scrollView.contentSize = CGSize(width: viewWidth * 2, height: viewHeight)
scrollView.delegate = self
view.addSubview(scrollView)
view.sendSubview(toBack: scrollView)
这可行,但为了使 UIViewController 可扩展,我希望能够为其提供一个 IBOutlet,以便人们可以将他们的 UIScrollView 连接到故事板。
如果有人通过故事板连接了 UIScrollView,我会使用那个 scrollView。否则,我会使用上面的代码自己制作它。
我以前在图书馆看过这个,但不记得图书馆了,所以我无法参考如何做。
只需创建一个出口:
@IBOutlet var scrollView: UIScrollView!
在viewDidLoad
中,如果scrollView
为nil
,则表示插座未连接。您可以使用一个简单的 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 中,只需将 !
替换为 ?
。这样就可以了。最简单。我必须对其进行测试以确保其正常工作。