简体   繁体   English

在自定义视图中未调用UIButton操作

[英]UIButton action not called inside custom view

I want to make a custom view, that will contain the following: 我要创建一个自定义视图,其中将包含以下内容:

  • a green view 绿景
  • inside the green view an image view 在绿色视图内的图像视图
  • on top of this another white view 在另一个白色视图之上
  • another image view on top of the white view 在白色视图之上的另一个图像视图
  • and on top of all an UIButton 最重要的是

This is my code which is inside a custom view: 这是我的代码,它位于自定义视图中:

func setup() {

    // add green view
    let greenView = UIView(frame: CGRectMake(0, 0, frame.size.width, frame.size.height))
    greenView.backgroundColor = UIColor.greenColor()
    greenView.userInteractionEnabled = true
    addSubview(greenView)

    // add first image
    let image1 = UIImageView(frame: CGRectMake(0, 0, frame.size.width, frame.size.height))
    image1.image = UIImage(named: "checked2")
    image1.userInteractionEnabled = true
    greenView.addSubview(image1)

    // add white image
    let whiteView = UIView(frame: CGRectMake(0, 0, frame.size.width, frame.size.height))
    whiteView.backgroundColor = UIColor.yellowColor()
    whiteView.userInteractionEnabled = true
    greenView.addSubview(whiteView)

    // add second image
    let image2 = UIImageView(frame: CGRectMake(0, 0, frame.size.width, frame.size.height))
    image2.image = UIImage(named: "checked")
    image2.userInteractionEnabled = true
    whiteView.addSubview(image2)

    // add button
    let button = UIButton(frame: CGRectMake(0, 0, frame.size.width, frame.size.height))
    button.backgroundColor = UIColor.redColor()
    button.addTarget(self, action: Selector("animation:"), forControlEvents: UIControlEvents.TouchUpInside)
    button.userInteractionEnabled = true
    addSubview(button)



}

func animation(button: UIButton) {
    print("tapped")
}

The button, which is red appears on top, but the action is not called when clicking on it. 红色按钮出现在顶部,但单击该按钮时不会调用该操作。
I tried to set userInteractionEnabled on all of the elements, but with no effect. 我试图在所有元素上设置userInteractionEnabled ,但是没有任何效果。

您发布的代码运行正常,问题出在包含所有视图的容器视图中,也许userInteractionEnabled对于容器视图为false。

默认情况下,按钮用户交互是打开的,无需显式设置。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM