当用户与 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 中绘制的内容“变暗”?的主要内容,如果未能解决你的问题,请参考以下文章