没有突出效果点击uibutton
我以编程方式创建了UIButton,它的外观是好的,但是当我点击按钮没有“高亮”效果,当你通常点击按钮。如何添加这个?没有突出效果点击uibutton
_payBtn = [UIButton buttonWithType:UIButtonTypeCustom];
[_payBtn setTitle:@" Оплатить " forState:UIControlStateNormal];
[_payBtn setTitleColor:[UIColor lightGreen] forState:UIControlStateNormal];
[_payBtn setContentMode:UIViewContentModeCenter];
_payBtn.tintColor = [UIColor lightGreen];
[[_payBtn layer] setBorderWidth:1.0f];
[[_payBtn layer] setBorderColor:[UIColor lightGreen].CGColor];
[_payBtn addTarget:self action:@selector(didTapPayBtn) forControlEvents:UIControlEventTouchUpInside];
[self.payContainerView addSubview:_payBtn];
您可以使用默认的方法来突出一个按钮:
[self.button showsTouchWhenHighlighted];
如果你想要某种的触摸效果,如设置背景色fr OM强调正常可以使用CABasicAnimation
类与关键backgroundColor
为背景外观:
- (IBAction) didTapPayBtn:(UIButton *)sender{
CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"backgroundColor"];
animation.fromValue = (id)[[UIColor lightGrayColor] CGColor];
// animation.toValue = (id)[[UIColor lightGrayColor] CGColor]; // optional
animation.duration = 1.0f; // animation duration
// animation.autoreverses = YES; // optional
// animation.repeatCount = NSIntegerMax; // optional
[self.button.layer addAnimation:animation forKey:@"ColorPulse"];
}
如果需要通过更改键的值,显示按钮上的影子,你可以这样做的效果:
// inside viewDidLoad
self.button.layer.shadowOpacity = 1.0f;'
// inside didTapPayBtn action
CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"shadowColor"];
[self.button.layer addAnimation:animation forKey:@"shadow"];
我想知道为什么[self.button showsTouchWhenHighlighted];不行。 –
然后你可以像使用布尔值'_payBtn.showsTouchWhenHighlighted = YES;'设置一样使用它,实际上我将其作为动画问题。 – vaibhav
您的自定义动画工作,但它作为解决方法,我想知道为什么默认动画禁用。 –
是的,你可以使用
_payBtn.showsTouchWhenHighlighted = YES;
其未解决的问题。 –
试试这个:
[_paybtn setHighlighted:YES];
[_paybtn sendActionsForControlEvents:UIControlEventTouchUpInside];
请接受我的答案,如果它为你工作。 thx – GeneCode
突出显示效果,如信息按钮或默认蓝色突出显示? – Wolverine
请检查我的答案,让我知道你反馈。 – vaibhav