当用户与 UIButton 交互时,是不是可以让我在自定义 UIButton 的 drawRect 中绘制的内容“变暗”?

Posted

技术标签:

【中文标题】当用户与 UIButton 交互时,是不是可以让我在自定义 UIButton 的 drawRect 中绘制的内容“变暗”?【英文标题】:Is it possible to have what I draw in my custom UIButton's drawRect be "darkened" when the user interacts with the UIButton?当用户与 UIButton 交互时,是否可以让我在自定义 UIButton 的 drawRect 中绘制的内容“变暗”? 【发布时间】:2014-10-27 19:04:12 【问题描述】:

我在其drawRect 方法中向我的自定义UIButton 添加了一个形状,但是当我点击按钮时,该形状并没有像UIButton 的其余部分那样变暗。是否有可能做到这一点?

【问题讨论】:

【参考方案1】:

我不确定您是否可以使用直接在按钮中绘制的形状来做到这一点,但是如果您将形状添加为按钮的背景图像,它会在触摸时变暗。在下面的示例中,我将椭圆形添加到 IB 中大小为 80 x 40 的按钮,

-(void)drawShapeInButton 
    UIBezierPath *oval = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(0,0, 80, 40)];
    UIGraphicsBeginImageContextWithOptions(oval.bounds.size, NO, 0.0);
    [[UIColor redColor] setFill];
    [oval fill];
    UIImage *img = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    [self.button setBackgroundImage:img forState:UIControlStateNormal];

【讨论】:

以上是关于当用户与 UIButton 交互时,是不是可以让我在自定义 UIButton 的 drawRect 中绘制的内容“变暗”?的主要内容,如果未能解决你的问题,请参考以下文章

将 TableView 标题粘贴到顶部,导致当用户向下滚动时标题不“交互”

UIButton 与键盘一起移动。用户按键时位置重置

SwiftUI Button 与 Map 交互

UIImageView 与 setInteractionEnable = YES;在 UIButton 下方处理点击(点击)

UIButton在动画期间没有交互

滚动时更改 UIButton 色调颜色