【问题标题】:How to access a scroll view sub class from the main view controller (Beginner)如何从主视图控制器访问滚动视图子类(初学者)
【发布时间】:2017-09-12 14:51:25
【问题描述】:

使用 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() 中的代码应用于当前屏幕上的滚动视图。我开始学习 Swift,非常感谢大家的帮助!

image of ScrollView and corresponding class

【问题讨论】:

    标签: ios swift swift3 uiscrollview


    【解决方案1】:

    在 ViewController.swift 中绑定滚动视图的 IBOutlet(您在 https://i.stack.imgur.com/5HRH0.png 中显示的滚动视图),然后使用该出口实例从 ViewController.swift 调用 loadFeatures()。

    例如,一旦你像下面这样绑定出口

    class ViewController: UIViewController {
    
    @IBOutlet weak var scrollView: featureScrollView!
    
    override func viewDidLoad() {
            super.viewDidLoad()
            scrollView.loadFeatures()
       }
    
    }
    

    【讨论】:

      【解决方案2】:

      由于您已经为您的 ScrollView 创建了一个自定义类,您可以通过在 *.storyboard 中将您的 scrollView 子类化来轻松访问它

      例如:

      您可以通过将其放置在此处来设置滚动视图的自定义类

      看起来像这样

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

      另一种方法是像这样在 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:请遵守swift编码标准。你应该总是以大写字母开头类名,因此这个class featureScrollView: UIScrollView应该像这样命名class FeatureScrollView: UIScrollView

      【讨论】:

      • @KevinT 将我们中的一个标记为正确答案以关闭问题或回答您自己的问题(如果您以其他方式解决了问题)。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-30
      相关资源
      最近更新 更多