如何创建一个从下到上包含 0 到 1 不透明度值(alpha 值)的 UIView?
Posted
技术标签:
【中文标题】如何创建一个从下到上包含 0 到 1 不透明度值(alpha 值)的 UIView?【英文标题】:How to create a UIView that contains 0 to 1 opacity value (alpha value) from bottom to top? 【发布时间】:2011-11-20 19:17:31 【问题描述】:我想创建一个 UIView,其中包含逐渐增加的不透明度值。也就是说,UIView 的底部将以 0.0 作为其 alpha 值开始,它应该以 1.0 结束于 UIView 的顶部。有可能提出这样的看法吗?或者我应该分离那个视图并给他们不同的 alpha 值?
提前致谢
【问题讨论】:
【参考方案1】:为了将来参考,这种效果的术语是gradient
。
您可以制作一个带有渐变图像的视图:
-
在要设置渐变的
UIView
后面创建UIImageView
将UIView
的背景颜色设置为清除。
将UIImageView
的背景图片设置为您创建的渐变PNG。
渐变 PNG 可以是 1 像素宽,也可以是 64 像素高(或更高,取决于您希望渐变看起来的平滑程度)。在绘画程序中制作它(GIMP 是一个不错的程序)。
一种纯粹在代码中实现的方法是使用CAGradientLayer
:
CAGradientLayer *gradient = [CAGradientLayer layer];
gradient.frame = self.view.bounds;
gradient.colors = [NSArray arrayWithObjects:
(id)[[UIColor colorWithWhite: 0.0 alpha:0.0] CGColor],
(id)[[UIColor colorWithWhite: 0.0 alpha:1.0] CGColor], nil];
gradient.startPoint = CGPointMake(0.5, 0.0); // default; bottom of the view
gradient.endPoint = CGPointMake(0.5, 1.0); // default; top of the view
[self.view.layer insertSublayer:gradient atIndex:0];
【讨论】:
谢谢它的工作.. 我们需要在 NSArray 中的每个对象之前添加代码(id)
以避免警告消息..以上是关于如何创建一个从下到上包含 0 到 1 不透明度值(alpha 值)的 UIView?的主要内容,如果未能解决你的问题,请参考以下文章