【问题标题】:adding a UIView as a SubView to a custom class, subclass of UIView, Swift将 UIView 作为 SubView 添加到自定义类、UIView 的子类、Swift
【发布时间】:2015-01-26 22:52:25
【问题描述】:

我遇到以下问题。 我有一个自定义类,UIView 的子类 在其中,我尝试添加一个新的 UIView,但它不允许我这样做。

class myCustomViewClass: UIView {

let smallerView = UIView(frame: CGRect(x: 0, y: 0, width: 200, height: 200))

        self.view.addSubview(smallerView) // Error with this !

}

我尝试了不同的方法。 我知道如果我从 UIViewController 子类化我可以让它工作,但我真的不想这样做。

感谢任何帮助。谢谢!

【问题讨论】:

  • UIView 没有名为 view 的属性。你应该打电话给self.addSubview:

标签: class swift uiview subclass addsubview


【解决方案1】:
class myCustomViewClass: UIView {

   let smallerView = UIView(frame: CGRect(x: 0, y: 0, width: 200, height: 200))

    override func drawRect(rect: CGRect) {
       self.addSubview(smallerView) 
    }

}

【讨论】:

  • 虽然这段代码可以回答这个问题,但最好在不介绍其他代码的情况下解释它是如何解决问题的,以及为什么要使用它。从长远来看,纯代码的答案没有用处。
  • 另外,不要这样做 - drawRect(或更高版本的 Swift 中的 draw)将被重复调用,除非您实际处理视图的绘制,否则不应被覆盖你自己。这当然不是打电话的地方addSubView
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-03-16
  • 1970-01-01
  • 2011-01-14
  • 1970-01-01
  • 1970-01-01
  • 2011-12-15
  • 2016-10-26
相关资源
最近更新 更多