【发布时间】:2012-07-08 14:46:44
【问题描述】:
我想知道如何简单地掩盖任何类型的 UIView 的可见区域。到目前为止,我阅读的所有答案/教程都描述了使用图像、渐变或创建圆角进行遮罩,这比我所追求的要先进得多。
示例:我有一个边界为 (0, 0, 100, 100) 的 UIView,我想使用遮罩切除视图的右半部分。因此,我的蒙版框架将是 (0, 0, 50, 100)。
知道如何简单地做到这一点吗?我不想重写 drawrect 方法,因为这应该适用于任何 UIView。
我已经尝试过了,但它只会使整个视图不可见。
CGRect mask = CGRectMake(0, 0, 50, 100);
UIView *maskView = [[UIView alloc] initWithFrame:mask];
viewToMask.layer.mask = maskView.layer;
【问题讨论】:
-
我不确定我是否理解,但你为什么不把你的视图框架改成蒙版呢?例如 viewToMask.frame = 掩码; (或者如果你想展示的话,反之亦然。)
-
这是行不通的,因为视图可能有应该被切断的可拉伸图像,或者即使被屏蔽也应该仍然可用的控件。更改框架会更改图像拉伸或使控件无法使用。
-
它有帮助:) 添加我作为答案的方式。