iOS - UIButton 显示触摸高亮颜色

Posted

技术标签:

【中文标题】iOS - UIButton 显示触摸高亮颜色【英文标题】:iOS - UIButton shows touch on highlight color 【发布时间】:2012-01-03 00:37:35 【问题描述】:

我想知道在 UIButton 上启用 showTouchOnHighlighted 选项时是否可以更改发光颜色。 谢谢

【问题讨论】:

这里解决了类似的问题作为解决方法***.com/questions/626965/… @Denis 很好,但他使用图像,我想以编程方式更改发光颜色。有可能吗? 【参考方案1】:

据我所知,我们无法更改按钮的颜色。但是你可以改变它的形象。您可以为所有可用的按钮状态设置图像。

- (void)setImage:(UIImage *)image forState:(UIControlState)state

您可以在此处找到有关相同内容的更多详细信息:UIButton Class Reference

根据您的要求选择您的状态为 UIControlStateNormal、UIControlStateSelected 或 UIControlStateHighlighted

【讨论】:

【参考方案2】:

可以使用 UIColor 创建图像,因此我们需要添加类似的内容:

    [button setBackgroundImage:[self imageWithColor:[UIColor lightGrayColor]] 
forState:UIControlStateHighlighted];

-

- (UIImage *)imageWithColor:(UIColor *)color

    CGRect rect = CGRectMake(0.0f, 0.0f, 1.0f, 1.0f);
    UIGraphicsBeginImageContext(rect.size);
    CGContextRef context = UIGraphicsGetCurrentContext();

    CGContextSetFillColorWithColor(context, [color CGColor]);
    CGContextFillRect(context, rect);

    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

    return image;

【讨论】:

以上是关于iOS - UIButton 显示触摸高亮颜色的主要内容,如果未能解决你的问题,请参考以下文章

Swift_UIButton

Swift - 按钮(UIButton)的用法

增加 UIButton 在高亮时的触摸效果半径

如何将 UIButton 的高亮属性设置为 NO?

通过触摸按钮 Swift 3 更改 UIButton 文本标签颜色

触摸时翻转 UIButton