为什么UIButtons在触摸时不会相互作用(将状态更改为突出显示)?

时间:2016-09-08 17:48:25

标签: ios swift uibutton

我总是遇到这个问题而且从来没有得到答案。当我以编程方式创建UIButton并添加到UI时,然后当您触摸按钮时, UI 上的状态未被更改为突出显示/向下与该按钮交互的结果。

另一件事,“有时”UIButtons在通过界面构建​​器添加时,它们可以正常工作,当您触摸它们时,您可以看到UI中的状态更改为高亮显示/向下。

知道为什么会这样吗?

2 个答案:

答案 0 :(得分:1)

如果您的按钮类型是自定义的,您必须为突出显示的状态设置图像/颜色,以区别状态更改(从正常到突出显示)。

如果您的按钮类型是系统,您将看到状态更改效果而不更改图像/颜色。

答案 1 :(得分:0)

我认为您注意到UIButton与Custom vs. System之间的区别。

我把这个操场放在一起,以显示差异。

import UIKit
import XCPlayground

let view = UIView(frame: CGRect(x: 0, y: 0, width: 400, height: 400))
view.backgroundColor = .whiteColor()

let button1 = UIButton(type: .System)
button1.frame = CGRect(x: 0, y: 0, width: 200, height: 50)
button1.setTitle("One", forState: .Normal)
button1.backgroundColor = .blackColor()
view.addSubview(button1)

let button2 = UIButton()
button2.frame = CGRect(x: 0, y: 60, width: 200, height: 50)
button2.setTitle("Two", forState: .Normal)
button2.backgroundColor = .grayColor()
view.addSubview(button2)

XCPlaygroundPage.currentPage.liveView = view

请发布您的程序设计按钮代码,以便我们进一步调查