我有一个应用程序,它使用后置摄像头的输出作为它的背景。我还在摄像机视图的顶部有一个UITableView或UIScrollView(取决于ViewController)。我想添加一个顶级菜单。此菜单不应包含UITableView或UIScrollView的任何内容。为了让它看起来不错,我想让UITableView和UIScrollView逐渐淡出渐变... 255(1.0f)alpha,直到距离顶栏菜单视图约45个像素。我尝试了许多解决方案&#34;但他们都认为你想要褪色的背景颜色是已知的,在这种情况下,背景颜色实际上是一个视频(各种各样)。这里真正的问题是:是否有一种方法可以让iOS在视图上只显示alpha渐变...即使下面的视图是动态变化的图像?此解决方案不能< / em>包含任何图像处理,因为&#34;图像&#34;实际上是后置摄像头输出,处理图像将花费太多时间并最终减慢应用程序。
提前感谢任何愿意回答我的问题的人...如果根本不可能请解释原因,我愿意将你的答案标记为正确。
任何代码都可以使用Objective-C或Swift(首选Swift)
iOS 8是此应用中的目标操作系统,因此,如果任何iOS 8库可以帮助解决此问题,请随时使用它。
答案 0 :(得分:6)
先回答here:
CAGradientLayer *gradient = [CAGradientLayer layer];
gradient.frame = self.tableView.superview.bounds;
gradient.colors = @[(id)[UIColor clearColor].CGColor, (id)[UIColor blackColor].CGColor, (id)[UIColor blackColor].CGColor, (id)[UIColor clearColor].CGColor];
gradient.locations = @[@0.0, @0.03, @0.97, @1.0];
self.tableView.superview.layer.mask = gradient;
有关详细信息,请查看原始链接。
答案 1 :(得分:0)
是的,您可以使用CAGradientLayer作为掩码。 This article进入了一堆例子。如果您在查看这些内容后需要进一步的帮助,请告诉我。