我用透明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
仅在我按某种方式按下背景图像的不透明部分时才起作用。如果我想念(我经常想念),没有任何反应。我怎么能改变这种行为?
答案 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)
}