UIButton is not highlighting when pressed(按下时 UIButton 不突出显示)
问题描述
我的 UIButton 实例在按下时未突出显示.我很确定我的代码是正确的.这只发生在我正在使用的这个特定类中.我猜是因为该函数已被我遵守的协议覆盖.
我想让 UIButton 突出显示默认方式,但我必须手动完成.如何在按下时强制突出显示按钮,它的默认设置是什么(在颜色方面),以便与所有其他按钮保持一致?
这是我当前的代码:
让 backButton = UIButton()backButton.setTitle("返回", for: .normal)backButton.setTitleColor(UIColor.black, for: .normal)backButton.adjustsImageWhenHighlighted = trueRevealBar.addSubview(backButton)backButton.snp.makeConstraints { (make) ->无效make.center.equalTo(RevealBar)make.width.equalTo(RevealBar)make.height.equalTo(RevealBar)}backButton.addTarget(self, action: #selector(self.goBack), for: .touchUpInside)使用 UIButton(type buttonType: .system) 而不是 UIButton() 来初始化按钮.
当您使用后者时,它不会正确设置按钮突出显示,因为默认按钮类型是 UIButtonType.custom,它旨在作为没有任何默认样式或突出显示行为的空白板.
注意,来自 Apple 的 UIButton 文档:p><块引用>
按钮的类型定义了它的基本外观和行为.您指定使用 init(type:) 方法在创建时按钮的类型或在您的故事板文件中.创建按钮后,无法更改它的类型. 最常用的按钮类型是自定义和系统类型,但在适当的时候使用其他类型.
My UIButton instance is not highlighting when pressed. I'm pretty sure my code is correct. This only happens in this specific class that I am using. I'm guessing because the function has been overridden by a protocol that I am conforming to.
I want to make the UIButton highlight the default way, but I have to do it manually. How can I force highlight the button when pressed, and what are the default settings for it (in terms of colour), so that it is consistent with all the other buttons?
Here is my current code:
let backButton = UIButton()
backButton.setTitle("back", for: .normal)
backButton.setTitleColor(UIColor.black, for: .normal)
backButton.adjustsImageWhenHighlighted = true
RevealBar.addSubview(backButton)
backButton.snp.makeConstraints { (make) -> Void in
make.center.equalTo(RevealBar)
make.width.equalTo(RevealBar)
make.height.equalTo(RevealBar)
}
backButton.addTarget(self, action: #selector(self.goBack), for: .touchUpInside)
Initialize the button using UIButton(type buttonType: .system) instead of UIButton().
When you use the latter it won't properly set up button highlighting because the default button type is UIButtonType.custom, which is intended as a blank slate without any of the default styling or highlighting behaviour.
Note, from Apple's UIButton documentation:
A button’s type defines its basic appearance and behavior. You specify the type of a button at creation time using the init(type:) method or in your storyboard file. After creating a button, you cannot change its type. The most commonly used button types are the Custom and System types, but use the other types when appropriate.
这篇关于按下时 UIButton 不突出显示的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:按下时 UIButton 不突出显示
基础教程推荐
- 如何比较两个 NSDate:哪个是最近的? 2022-01-01
- navigationItem.backBarButtonItem 不工作?为什么上一个菜单仍然显示为按钮? 2022-01-01
- UIImage 在开始时不适合 UIScrollView 2022-01-01
- 如何将图像从一项活动发送到另一项活动? 2022-01-01
- Xcode UIView.init(frame:) 只能在主线程中使用 2022-01-01
- iOS - UINavigationController 添加多个正确的项目? 2022-01-01
- 为什么姜饼模拟器方向卡在应用程序中? 2022-01-01
- Play 商店的设备兼容性问题 2022-01-01
- SwiftUI-ScrollViewReader的ScrollTo不滚动 2022-01-01
- Android Volley - 如何动画图像加载? 2022-01-01
