将 UIView 作为 SubView 添加到自定义类、UIView 的子类、Swift

Posted

技术标签:

【中文标题】将 UIView 作为 SubView 添加到自定义类、UIView 的子类、Swift【英文标题】:adding a UIView as a SubView to a custom class, subclass of 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: 【参考方案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

以上是关于将 UIView 作为 SubView 添加到自定义类、UIView 的子类、Swift的主要内容,如果未能解决你的问题,请参考以下文章

UIImageView 填写 UIView

添加为 UIView 的子视图后,按钮不可点击

将 Subview 传递给子类 UIView

计算 UIView 中圆上 Subview 的中心坐标(倒坐标系)

UIView subView alpha 动画不起作用

将元素添加为子视图后,元素位置发生变化