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

时间:2011-09-20 06:07:10

标签: iphone uiview opacity alpha

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

先谢谢

1 个答案:

答案 0 :(得分:18)

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

您可以使用后面的渐变图片制作视图:

  1. 在您想要设置渐变的UIImageView后面创建UIView
  2. UIView的背景颜色设置为清除。
  3. UIImageView的背景图像设置为您创建的渐变PNG。
  4. 渐变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];