具有透明背景图像的UIButton无法正常工作

时间:2015-10-27 13:49:50

标签: ios swift uibutton

我用透明PNG创建了UIButton。

 instantHelpBtn = UIButton()
 instantHelpBtn.frame = CGRectMake(10, 10, 30, 30)
 instantHelpBtn.setBackgroundImage(UIImage(named: "questions1.png"), forState: .Normal)
 instantHelpBtn.addTarget(self, action: "instantHelpBtnPressed", forControlEvents: .TouchUpInside)
 self.view.addSubview(instantHelpBtn)

问题是函数instantHelpBtnPressed仅在我按某种方式按下背景图像的不透明部分时才起作用。如果我想念(我经常想念),没有任何反应。我怎么能改变这种行为?

3 个答案:

答案 0 :(得分:2)

问题是你的按钮框架。您正在创建30X30 UIButton,根据Apple iOS人机界面指南,最小尺寸应为44X44

答案 1 :(得分:2)

在我看来,30 * 30帧太小了。 Apple建议创建不小于44x44像素的ui-tappable元素。以下是文档链接:https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/MobileHIG/LayoutandAppearance.html

答案 2 :(得分:0)

如何而不是将其设置为透明图像呢...

instantHelpBtn.backgroundColor = UIColor.clearColor() 

如果您想在点击时将其设置为图像,请执行...

func instantHelpBtnPressed(sender: UIButton) {
   sender.setBackgroundImage(UIImage(named: "questions1.png"), forState: .Normal)
}