3

因为我是 iphone 开发的新手。我想为“自定义 UIButton”赋予“信息 UIButton”之类的发光效果。

在此处输入图像描述-->在此处输入图像描述

在这种情况下,请帮助我,以在按钮点击时产生上述效果。

4

5 回答 5

15

我找到了一种简单的方法来做我想做的事。这是通过启用“Shows Touch On Highlight”属性的复选标记。看截图。。

在此处输入图像描述

它适用于我的自定义按钮。

于 2013-05-28T11:00:20.420 回答
6

如果您不想使用图像,请使用下面的代码导入“CoreGraphics 框架”以使用下面的代码

-(IBAction)myButtonTapped:(id)sender
{
 UIButton *tmpbtn=(UIButton *)sender;
 tmpbtn.layer.shadowColor = [UIColor cyanColor].CGColor;
 tmpbtn.layer.shadowRadius = 10.0f;
 tmpbtn.layer.shadowOpacity = 1.0f;
 tmpbtn.layer.shadowOffset = CGSizeZero;
}

要删除发光效果只需添加

-(void)removeBtnGlow
{
   myBtn.layer.shadowColor = [UIColor clearColor].CGColor;
   myBtn.layer.shadowRadius = 10.0f;
   myBtn.layer.shadowOpacity = 1.0f;
   myBtn.layer.shadowOffset = CGSizeZero;
}
于 2013-05-03T06:13:15.363 回答
1

你切割发光效果的图像并使用此代码

[yourBtn setBackgroundImage:[UIImage imageNamed:@"yourimagename"] forState:UIControlStateHighlighted];
于 2013-05-03T05:59:00.257 回答
1

您是否尝试过创建按钮图标的发光版本的图像并将其设置为如下代码:

[yourButton setImage:glowImage forState:UIControlStateHighlighted];

或在界面生成器中:

这是按钮的默认图像 这将是您设置发光图标的方式

于 2013-05-03T06:12:21.003 回答
1

作为一个UIBUtton类别,通过使用glowWithProgress:您可以为发光变化设置动画

@implementation UIButton (Extra)

-(void)addGlow{
    [self glowWithProgress:1.0];
}

-(void)removeGlow{
    [self glowWithProgress:0.0];
}

-(void)glowWithProgress:(CGFloat)progress{
    CGFloat realProgress = MAX(.0f, MIN(1.0f, progress));
    self.layer.shadowColor = [UIColor whiteColor].CGColor;
    self.layer.shadowRadius = 10.0f;
    self.layer.shadowOpacity = 1.0f * realProgress;
    self.layer.shadowOffset = CGSizeZero;
}

@end
于 2015-05-06T10:19:18.360 回答