gpt4 book ai didi

iphone - 向 UIView 添加褪色和透明度

转载 作者:可可西里 更新时间:2023-11-01 03:22:10 24 4
gpt4 key购买 nike

我知道如何创建一个 View 并为其设置动画,例如 iOS 6+ 附带的新应用商店应用的共享 subview 中的 View (请参阅随附的屏幕截图),但我不知道如何添加那个漂亮的< strong>在此 View 上具有透明度的着色效果。任何人都可以提供代码示例来使 UIView 看起来与屏幕截图中的完全一样吗?

附言单独的 UIView 的 alpha 属性不会做这样的事情。

enter image description here

最佳答案

您可以将此方法添加到 UIView 类别并根据需要重复使用。它对给定 View 应用从“theColor”到透明的线性黑色渐变。

为了使用 CAGradientLayer 对象,您的项目中应该有 QuartzCore.framework。

+ (void)addLinearGradientToView:(UIView *)theView withColor:(UIColor *)theColor transparentToOpaque:(BOOL)transparentToOpaque
{
CAGradientLayer *gradient = [CAGradientLayer layer];

//the gradient layer must be positioned at the origin of the view
CGRect gradientFrame = theView.frame;
gradientFrame.origin.x = 0;
gradientFrame.origin.y = 0;
gradient.frame = gradientFrame;

//build the colors array for the gradient
NSArray *colors = [NSArray arrayWithObjects:
(id)[theColor CGColor],
(id)[[theColor colorWithAlphaComponent:0.9f] CGColor],
(id)[[theColor colorWithAlphaComponent:0.6f] CGColor],
(id)[[theColor colorWithAlphaComponent:0.4f] CGColor],
(id)[[theColor colorWithAlphaComponent:0.3f] CGColor],
(id)[[theColor colorWithAlphaComponent:0.1f] CGColor],
(id)[[UIColor clearColor] CGColor],
nil];

//reverse the color array if needed
if(transparentToOpaque)
{
colors = [[colors reverseObjectEnumerator] allObjects];
}

//apply the colors and the gradient to the view
gradient.colors = colors;

[theView.layer insertSublayer:gradient atIndex:0];
}

请注意,您应该将 theView 的 backgroundColor 设置为 clearColor,这样它就不会干扰渐变。此外,对于屏幕截图中显示的结果,transparentToOpaque 标志应为 YES。

关于iphone - 向 UIView 添加褪色和透明度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14854677/

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