如何从主视图控制器(初学者)访问滚动视图子类

时间:2017-04-17 01:04:24

标签: ios swift swift3 uiscrollview

使用swift 3,我的主视图中有一个UIScrollView。我称之为“功能滚动视图”

我还在我的UIScrollView中添加了一个自定义类,其中有一个名为loadFeatures()的函数

featureScrollView.swift:

class featureScrollView: UIScrollView {

public func loadFeatures () {
    //Add Pictures to the UIScrollView
}

如何在主视图中从我的ViewController.swift类中调用UIScrollView实例上调用loadFeatures()

在我的ViewController.swift中,我想简单地写一下

scrollView.loadFeatures() 

并将loadFeatures()中的代码应用于当前屏幕上的scrollView。我开始学习Swift,我非常感谢大家的帮助!

image of ScrollView and corresponding class

2 个答案:

答案 0 :(得分:2)

将ViewController.swift中的scrollview(您在https://i.stack.imgur.com/5HRH0.png中显示的Scrollview)的IBOutlet绑定在一起,然后从ViewController.swift中调用loadFeatures()与该插件实例。

例如,一旦你像下面那样绑定插座

class ViewController: UIViewController {

@IBOutlet weak var scrollView: featureScrollView!

override func viewDidLoad() {
        super.viewDidLoad()
        scrollView.loadFeatures()
   }

}

答案 1 :(得分:0)

由于您已经为ScrollView创建了自定义类,因此可以通过在*.storyboard

中继承scrollView来轻松访问它。

例如:

您可以将scrollView的自定义类放在此处

enter image description here

看起来像这样

enter image description here

注意:这只是一种做事方式

另一种方法是在UIViewController类中手动执行此操作

class ViewController: UIViewController {

    var ftScrollView: FeatureScrollView!

    override func viewDidLoad() {
        super.viewDidLoad()

        ftScrollView = FeatureScrollView()  // I Initialized the scrollView
        ftScrollView.frame = // some frame here
        view.addSubView(ftScrollView)
        ftScrollView.loadFeatures()

    }
}

PS:请遵守快速编码标准。您应该始终使用大写字母启动类名,因此class featureScrollView: UIScrollView应该命名为class FeatureScrollView: UIScrollView