因为我是 iphone 开发的新手。我想为“自定义 UIButton”赋予“信息 UIButton”之类的发光效果。
-->
在这种情况下,请帮助我,以在按钮点击时产生上述效果。
我找到了一种简单的方法来做我想做的事。这是通过启用“Shows Touch On Highlight”属性的复选标记。看截图。。
它适用于我的自定义按钮。
如果您不想使用图像,请使用下面的代码导入“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;
}
你切割发光效果的图像并使用此代码
[yourBtn setBackgroundImage:[UIImage imageNamed:@"yourimagename"] forState:UIControlStateHighlighted];
您是否尝试过创建按钮图标的发光版本的图像并将其设置为如下代码:
[yourButton setImage:glowImage forState:UIControlStateHighlighted];
或在界面生成器中:
作为一个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