gpt4 book ai didi

带有CAGradientLayer的iPhone iOS自定义UIButton,如何使其指示触摸?

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:50:03 26 4
gpt4 key购买 nike

我的 View Controller 中有一个自定义样式的 UIButton,它是通过使用 CAGradientLayer 自定义 UIButton、圆角并在图层周围添加边框来实现的。 Gradient button

我喜欢这些按钮的外观和感觉,它们也很容易实现,无需使用预渲染图像。但我遇到了一个问题 - 此类按钮不像 UIButton 那样响应触摸。例如,一个典型的圆角矩形按钮在被点击时会突出显示蓝色,但我的按钮不会。

如果我按照以下代码在 UIButton 上使用自定义 CAGradientLayer 背景,我如何实现“触摸突出显示按钮”行为?

感谢您的参与!

+(void)addLinearGradientToView:(UIView*)view TopColor:(UIColor*)topColor BottomColor:(UIColor*)bottomColor
{
for(CALayer* layer in view.layer.sublayers)
{
if ([layer isKindOfClass:[CAGradientLayer class]])
{
[layer removeFromSuperlayer];
}
}
CAGradientLayer* gradientLayer = [CAGradientLayer layer];
//top down gradient
gradientLayer.startPoint = CGPointMake(0.5, 0);
gradientLayer.endPoint = CGPointMake(0.5,1);
gradientLayer.frame = view.bounds;



gradientLayer.colors = [NSArray arrayWithObjects:(id)[topColor CGColor], (id)[bottomColor CGColor], nil];

[view.layer insertSublayer:gradientLayer atIndex:0];

}

最佳答案

如果您将 UIButton 子类化,您可以覆盖 setHighlighted 方法。在这里您可以在按钮上设置不同的渐变,或更改背景颜色。

- (void)setHighlighted:(BOOL)highlighted {
[super setHighlighted:highlighted];
// Update the looks of the button
}

关于带有CAGradientLayer的iPhone iOS自定义UIButton,如何使其指示触摸?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12990993/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com