我想创建一个 UIView,其中包含逐渐增加的不透明度值。也就是说,UIView 的底部将以 0.0 作为其 alpha 值开始,并且在 UIView 的顶部应以 1.0 结束。是否可以提出这样的观点?或者我应该分离该 View 并给它们不同的 alpha 值?
提前致谢
最佳答案
为了将来引用,这种效果的术语是渐变
。
您可以创建一个 View ,其后面带有渐变图像:
- 在要设置渐变的
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];
关于iphone - 如何创建一个从下到上包含0到1不透明度值(alpha值)的UIView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7480832/