如何创建一个从下到上包含0到1不透明度值(alpha值)的UIView?

Con*_*sed 4 iphone alpha opacity uiview

我想创建一个UIView,其中包含逐渐增加的不透明度值.也就是说,UIView的底部将以0.0作为其alpha值开始,它应该以UIView顶部的1.0结尾.是否有可能提出这样的观点?或者我应该将该视图分开并给它们各种alpha值?

提前致谢

dar*_*s0n 18

为了将来参考,这种效果的术语是a gradient.

您可以使用后面的渐变图像创建视图:

  1. UIImageViewUIView你想要设置渐变的背后创建一个
  2. UIView背景颜色设置为清除.
  3. 将背景图像设置为UIImageView您创建的渐变PNG.

渐变PNG可以是1px宽,也可以是64px高(或更高,取决于您希望渐变的平滑程度).在油漆程序中进行(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];
Run Code Online (Sandbox Code Playgroud)