按下时将 UIbutton 添加为子视图无法调用 Selector

Posted

技术标签:

【中文标题】按下时将 UIbutton 添加为子视图无法调用 Selector【英文标题】:Adding UIbutton as subview fails to call the Selector when pressed 【发布时间】:2016-02-17 10:04:26 【问题描述】:

这是我的代码

                cell.imageView.contentMode = .ScaleAspectFit
                cell.imageView.image = UIImage(named: "dummyImage")
                cell.button.backgroundColor = UIColor.grayColor()
                cell.button.setTitleColor(UIColor.whiteColor(), forState: .Normal)
                cell.button.titleLabel?.font = UIFont.systemFontOfSize(8.0)
                cell.button.setTitle("PRESS HERE", forState: .Normal)
                cell.button.addTarget(self, action: "pressed:", forControlEvents: UIControlEvents.
                cell.imageView.addSubview(cell.button)

按钮正在显示并覆盖图像,但选择器

按下

当我点击按钮时没有被调用。帮助。

【问题讨论】:

你能发图片吗?您是否将按钮添加为 uiimage 的子视图? 不需要这个cell.imageView.addSubview(cell.button),如果你想为图片点击操作 @Anbu.Karthik 如果我不添加 cell.imageView.addSubview(cell.button) ,按钮会被图像隐藏 【参考方案1】:

不喜欢

cell.imageView.addSubview(cell.button)

喜欢并尝试一下

  cell.imageView.userInteractionEnabled = true
  cell.button.frame=CGRectMake(cell.imageView.frame.origin.x, cell.imageView.frame.origin.y, cell.imageView.frame.size.width, cell.imageView.frame.size.height)
 cell.button.tag = indexpath.row
  cell.button.addTarget(self, action: "pressed:", forControlEvents: UIControlEvents. TouchUpInside)
cell.contentview.addSubview(cell.button)

然后点赞

 func pressed(sender:UIButton)

    NSLog("tapped index==%@",sender.tag)

【讨论】:

谢谢。 cell.contentview.addsubView(cell.button) 完成了这项工作。【参考方案2】:

pressed: 表示您正在调用的方法中有一个选择器。

尝试使用“按下”或将您的功能更改为:

func pressed(sender:UIButton!)

    println("Button tapped")

【讨论】:

【参考方案3】:

尝试添加:

cell.imageView.userInteractionEnabled = true

UIImageView 的这个属性默认为false

【讨论】:

以上是关于按下时将 UIbutton 添加为子视图无法调用 Selector的主要内容,如果未能解决你的问题,请参考以下文章

按下时将图像添加到按钮

在 UITableView 顶部按下时,UIButton 不会更改其状态

iOS - 按下时 UIButton 的文本被设置回笔尖设置值

将viewcontroller的视图添加为子视图后UIButton点击事件崩溃

UIButton 的 title 属性正确记录但在将按钮添加为子视图时未显示

UIButton 按下时移动