【发布时间】:2015-07-06 09:29:21
【问题描述】:
我已经自定义了自己的按钮。当我点击它时,我想更改按钮的文本颜色和边框颜色。我通过以下代码覆盖了 UIButton setHighlighted 方法
if (highlighted) {
self.layer.borderColor = [[UIColor colorWithRed:0.447 green:0.443 blue:0.443 alpha:1.000] CGColor];
self.titleLabel.textColor = [UIColor colorWithRed:0.447 green:0.443 blue:0.443 alpha:1.000];
}
else{
self.layer.borderColor = [[ UIColor whiteColor] CGColor];
self.titleLabel.textColor = [UIColor whiteColor];
}
但是,当我只是点击按钮时它不起作用,当我在按钮上移动时它会改变颜色。 我试图创建断点来检查这个函数是否可以正确输入。我观察到这些代码在我点击按钮时会执行一次(由 touchbegan 事件触发),但在我进一步移动时会执行两次(由 touchbegan, touchmove 事件触发)。
我也尝试在视图级别添加操作:
[downloadBtn addTarget:self action:@selector(allDownloadBtnClicked:) forControlEvents:UIControlEventTouchUpInside];
[downloadBtn addTarget:self action:@selector(allDownloadBtnHighlighted:) forControlEvents:UIControlEventTouchDown];
但还是不能按我的预期运行。
谁能给我任何建议以实现我的目标?谢谢!
【问题讨论】:
-
你为你的按钮设置了 self.layer.borderWidth = 2.0f 吗?
-
我在 layoutSubviews 中设置了borderWidth。
标签: ios objective-c uibutton