为什么 UIButton 在触摸时不交互(将状态更改为突出显示)?



我总是面对这个问题,但从来没有得到过答案。当我以编程方式创建UIButton并添加到UI时,然后当你触摸按钮时,UI上的状态未被更改为高亮/下降作为与该按钮交互的结果。

另一件事,'sometimes' uibutton当它们通过界面构建器添加时,它们工作得很好,当你触摸它们时,你可以看到UI中的状态变为高亮/向下。

知道为什么会这样吗?

如果你的按钮类型是自定义的,你必须为高亮状态设置image/color,以区别状态变化(从正常到高亮)。

如果你的按钮类型是system,你将看到状态改变效果而不改变图像/颜色。

我想你注意到UIButton与类型自定义和系统之间的区别。

我把这个操场拼在一起以示不同。

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

请张贴您的程序按钮代码,以便我们可以调查更多

最新更新