【问题标题】:How to keep UIButton highlighted until a second touch?如何保持 UIButton 突出显示直到第二次触摸?
【发布时间】:2015-08-28 05:56:54
【问题描述】:

我想将按钮保持在突出显示状态图像直到第二次触摸以将其释放到正常状态。

我尝试了dispatch_async方法,但再次点击后它根本无法恢复正常状态。

(我使用 Swift 编码,所以 performSelector:WithObject 方法也不起作用。)

【问题讨论】:

  • 您可以使用图像设置为 UIButton 并在第一次单击和第二次单击时更改它们。
  • 您不能保持高亮状态,因为它会在跟踪期间触摸进入/退出时自动设置/清除,并在向上清除时自动设置/清除。所以你必须使用正常和选择状态来显示你想要的图像

标签: ios xcode swift cocoa-touch uibutton


【解决方案1】:

我将使用选中状态而不是高亮显示。 UIButton 已有该属性,因此您无需创建任何其他属性。

button.setImage(image, forState: UIControlState.Normal)
button.setImage(selectedImage, forState: UIControlState.Selected)

button.addTarget(self, action: "buttonTapped:", forControlEvents: UIControlEvents.TouchUpInside)


func buttonTapped(sender:UIButton)
{
  sender.selected = !sender.selected;
}

【讨论】:

  • 感谢它完美运行。你太有帮助了。太棒了。
  • 但是如果Button有Image,那么selected属性不起作用!!
【解决方案2】:

最好的解决方案是扩展 UIButton 类,添加“highlited” BOOL 标志。每次点击后,只需更新此标志并设置不同的图像。

【讨论】:

    猜你喜欢
    • 2014-09-10
    • 1970-01-01
    • 2014-02-03
    • 1970-01-01
    • 1970-01-01
    • 2012-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多