gpt4 book ai didi

ios - 为什么当我删除 UIView subview 时我的 SurperView 没有响应?

转载 作者:行者123 更新时间:2023-11-28 16:15:27 24 4
gpt4 key购买 nike

当按下按钮时,我在我的 iOS 应用程序上显示了一个 subview 。然后,我从它的类 menuView 中调用自定义 UIView,并在我的主 Storyboard上显示该 UIView

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

怎么了?

我的自定义“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()
}

}

主视图 Controller 类:

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"

}

}

最佳答案

简答:

self.myMenuView.view.removeFromSuperview()

应该变成

self.myMenuView.removeFromSuperview()

在这两个地方,buttonPressed 中都有这一行。

解释:

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

关于ios - 为什么当我删除 UIView subview 时我的 SurperView 没有响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39133992/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com