UIButton没有注册触摸

时间:2016-11-25 01:35:24

标签: ios swift uibutton swift3

我在自己的一个视图控制器中添加了带有自定义图像的UIButton,没有文本到导航栏。在那个导航栏中也是默认按钮Back。

我将UIButton连接到Connection:Action,Type:UIButton,Event:Touch Up Inside and Arguments:Sender。

当我点击该按钮时没有任何反应,它根本没有注册触摸。 Button Back正常工作。

enter image description here

为什么会这样?如何解决?

4 个答案:

答案 0 :(得分:0)

试试这个:

  1. 由于您要将其添加到导航栏,因此必须为UIBarButtonItem。因此,您要连接到它的操作插座必须是UIBarButtonItem类型,而不是UIButton

  2. 检查UIBarButtonItem的插座是否正确连接。

  3. 检查UIBarButtonItem的用户互动是否已启用。

答案 1 :(得分:0)

  

当我点击该按钮时没有任何反应,它根本没有注册触摸。

99%的时间,当我看到此投诉时,原因是您以某种方式将按钮放在超级视图之外。超级视图外部的按钮是可见的(默认情况下),但不可触摸。 (有时会发生这种情况,因为超级视图本身从未被赋予大小,因此没有大小;有时则是出于其他原因。)

我无法再告诉你了,因为还没有告诉你(也就是说你没有详细说明这个按钮是如何进入导航栏的)。但我愿意打赌,如果你深入挖掘,你会发现我的猜测是正确的。

答案 2 :(得分:0)

我通过首先将导航项添加到导航栏然后将Button添加到导航项来解决它。

答案 3 :(得分:0)

要在导航栏上添加按钮,您必须添加如下:

 let leftButton = UIBarButtonItem(title: "abc", style: .Plain, target: self, action: #selector(ViewController.buttonClicked(_:)))
 let navigationItem = UINavigationItem()
 navigationItem.titleView = UIImageView(image: UIImage(named: "image.png"))
 navigationItem.leftBarButtonItem = leftButton

这是左按钮。您可以以相同的方式添加右键。