【问题标题】:Add UIView as SuperView subView from its own UView SubClass从它自己的 UView 子类中添加 UIView 作为 SuperView 子视图
【发布时间】:2015-06-02 14:28:56
【问题描述】:

其实我觉得这个很简单,漏掉了什么。

我正在创建 UIView 的子类,而不是像这样从 ViewController 将其添加为子视图:

rateus = RateFrameWork(AppID: "asdasds", BackGroundColor: UIColor.blueColor())
self.addSubView(rateus)

我正在尝试从子类中添加它,这是我迄今为止尝试过的:

class RateFrameWork: UIView 

1) 来自超级初始化编码器(剂量工作)

 required init(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
        superview?.addSubview(self)

    }

2) 来自 init 方法(剂量工作)

init?(AppID: String!, BackGroundColor: UIColor!)
super.init(frame: CGRect(x:  0 , y: 0, width: UIScreen.mainScreen().bounds.size.width , height:UIScreen.mainScreen().bounds.size.height))
 superview?.addSubview(self)

有什么建议吗? 如何将其添加为来自其自己的子类的子视图?

【问题讨论】:

    标签: ios uiview subclass addsubview superview


    【解决方案1】:

    你不能这样做,因为这与想法相矛盾。

    视图没有superview,除非它被添加为子视图,并且视图不知道它会在什么情况下以及何时添加为子视图。

    一些特殊视图(例如AlertView、ActionView)可以添加到keyWindow,但你的视图不能。

    【讨论】:

    • 嘿。感谢您的回答!我听说我可以做类似 InitWithSuperVIew 的事情,你熟悉吗?
    • 呃……我更喜欢使用showInView而不是initWithSuperView,就像UIActionSheet一样
    • 其实我不知道有什么区别。其中一种方法通过init进程将其添加到superView?
    • 我认为不同之处在于showInView 由其超级视图调用。一个优点是它将被初始化但不可见。它的 superview 可以决定何时显示。
    • 我在子类中使用了这个命令,或者当我声明对象时(例如在视图中确实加载了)
    猜你喜欢
    • 2014-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多