首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在iOS中屏蔽UIViews

问如何在iOS中屏蔽UIViews
EN

Stack Overflow用户
提问于 2010-12-30 11:12:06
回答 3查看 29.9K关注 0票数 30

我见过类似的问题,但还没有找到可行的答案。

我想使用灰度图像遮罩UIView (需要转换为alpha比例进行遮罩)。UIView具有背景知识。遮罩图像应该很容易,但我想要遮罩任何UIView。

任何线索都将不胜感激。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-08-29 18:00:19

我已经在这个问题上工作了几个小时,我有一个解决方案,我认为它会做你想要的。首先,使用您认为合适的任何方法创建遮罩图像。注意,这里我们只需要alpha值,所有其他颜色都将被忽略,因此请确保您使用的方法支持alpha值。在本例中,我从一个.png文件加载,但不要尝试用.jpg文件加载,因为它们没有Alpha值。

接下来,创建一个新层,将蒙版指定给它的内容,并将此新层设置为您的to视图自己的层,如下所示:您会发现这会遮罩UIView及其所有附加的子视图:

代码语言:javascript
复制
UIImage *_maskingImage = [UIImage imageNamed:@"mask"];
CALayer *_maskingLayer = [CALayer layer];
_maskingLayer.frame = theView.bounds;
[_maskingLayer setContents:(id)[_maskingImage CGImage]];
[theView.layer setMask:_maskingLayer];

完成此操作后,您可以将UIView的背景颜色设置为您喜欢的任何颜色,蒙版将用于创建彩色滤镜。

EDIT:从iOS8开始,您现在可以简单地通过将另一个视图分配给视图的maskView属性来屏蔽视图。一般规则保持不变,因为maskView的alpha层用于确定应用它的视图的不透明度。

票数 68
EN

Stack Overflow用户

发布于 2016-05-10 06:13:51

对于面向iOS 8.0+的应用程序,这很有效(在本例中,使用渐变作为蒙版),它避免了任何需要调整蒙版大小或位置的需要。

代码语言:javascript
复制
// Add gradient mask to view
func addGradientMask(targetView: UIView)
{
    let gradientMask = CAGradientLayer()

    gradientMask.frame = targetView.bounds
    gradientMask.colors = [UIColor.blackColor().CGColor, UIColor.clearColor().CGColor]
    gradientMask.locations = [0.8, 1.0]

    let maskView: UIView = UIView()
    maskView.layer.addSublayer(gradientMask)

    targetView.maskView = maskView 
}

在我的例子中,我想在用户开始滚动时移除掩码。这是通过以下方式完成的:

代码语言:javascript
复制
func scrollViewWillBeginDragging(scrollView: UIScrollView) {

    exerDetailsTableView.maskView = nil        
}

其中视图定义为@IBOutlet:

代码语言:javascript
复制
@IBOutlet weak var exerDetailsTableView: UITableView!

结果:

​

​

票数 9
EN

Stack Overflow用户

发布于 2010-12-30 11:19:18

我不知道确切的代码,但基本的想法是有两个UIViews。一个UIView会将其图像属性设置为灰度图像,而另一个UIView将照常设置。唯一不同的是,您将直接将初始UIView定位在包含“正常”图像的UIView之上。

我希望这足以推动你的想法更进一步。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4559743

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档