用一个UIView屏蔽多个iOS UIViews
是不是可能有一个UIView是一个maskedView超过1视图? 我在下面的UIViews上设置maskView,但只有最后一个保留掩码设置。
imageOne.maskView = viewMask labelThing.maskView = viewMask labelOtherThing.maskView = viewMask labelLastThing.maskView = viewMask labelMaskThis.maskView = viewMask //the only masked view
解决这个问题,我评论了最后一行,并证实了我的怀疑。
imageOne.maskView = viewMask labelThing.maskView = viewMask labelOtherThing.maskView = viewMask labelLastThing.maskView = viewMask //now gets the mask //labelMaskThis.maskView = viewMask
有没有办法让我的viewMask: UIView
应用于多个视图?
看起来像答案是否定的,你不能使用相同的UIView
实例来屏蔽多个视图:显然,屏蔽视图的图层正被集成到正在被屏蔽的视图的层次结构中。
最好的办法是为每一个你试图屏蔽的视图创build一个新的UIView
遮罩实例。 或者,您可以通过NSKeyedArchiver
复制现有的视图:
let archivedData = NSKeyedArchiver.archivedDataWithRootObject(viewMask) let viewMaskCopy = NSKeyedUnarchiver.unarchiveObjectWithData(archivedData) as! UIView
虽然我会build议简单地创build新的遮罩视图实例的方式,你首先实例化viewMask
。
您也可以在故事板中的一个包含UIView
中将蒙面视图分组,然后将蒙版应用于该视图。