【问题标题】:Why is my SurperView unresponsive when I remove a UIView SubView?当我删除 UIView 子视图时,为什么我的 SurperView 没有响应?
【发布时间】:2017-01-01 05:16:07
【问题描述】:

按下按钮时,我在我的 iOS 应用程序上显示了一个子视图。然后,我从它的类 menuView 中调用一个自定义 UIView,并在我的主故事板上显示该 UIView

menuView 在我的 Main Storyboard 上看起来很好,但是一旦我删除了子视图,我的 SuperView(主视图控制器的主类的原始视图)没有响应,我无法与任何东西交互。

怎么了?

我的自定义“menuView” UIView 类:

import UIKit

@IBDesignable class menuView: UIView {

var view:UIView!

@IBOutlet weak var label: UILabel!

func loadViewFromNib() -> UIView {

    let bundle = NSBundle(forClass: self.dynamicType)
    let nib = UINib(nibName: "menuView", bundle: bundle)
    let view = nib.instantiateWithOwner(self, options: nil)[0] as! UIView

    return view
}

func xibSetup() {
    view = loadViewFromNib()
    view.frame = bounds
    view.autoresizingMask = [UIViewAutoresizing.FlexibleWidth, UIViewAutoresizing.FlexibleHeight]

    addSubview(view)
}

override init(frame: CGRect) {
    super.init(frame: frame)

    xibSetup()
}

required init(coder aDecoder: NSCoder) {
    super.init(coder: aDecoder)!

    xibSetup()
}

}

主视图控制器类:

var myMenuView:menuView!

@IBOutlet weak var menuButtonOutlet: UIBarButtonItem!
@IBAction func buttonPressed(sender: AnyObject) {


    if menuButtonOutlet.title == "Menu" {

    if (myMenuView != nil) {
        self.myMenuView.view.removeFromSuperview()
    }

    self.myMenuView = menuView(frame: self.view.bounds)

    self.myMenuView.alpha = 0.75

    self.view.addSubview(myMenuView)

        menuButtonOutlet.title = "Back"

    } else {

          self.myMenuView.view.removeFromSuperview()

          menuButtonOutlet.title = "Menu"

    }

}

【问题讨论】:

    标签: ios swift uiview subview


    【解决方案1】:

    简答:

    self.myMenuView.view.removeFromSuperview()
    

    应该变成

    self.myMenuView.removeFromSuperview()
    

    在这两个地方你都有这行 buttonPressed.

    说明:

    您的 myMenuView 是一个容器,您可以在其中放置从 xib 实例化的视图。在 buttonPressed 中,您只删除 myMenuView 中的这个内部(xib)视图,而不是 myMenuView 本身。因此 myMenuView 保留在屏幕上并吞下所有触摸。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-20
      • 1970-01-01
      • 2019-10-20
      • 1970-01-01
      相关资源
      最近更新 更多