如何遮盖具有任何形状的本机<View />?

Gil*_*man 5 react-native

似乎react-native中的所有组件都是矩形或圆角矩形(也可以表示一个圆)。

如何掩盖<View />具有六边形等任意形状的a?

Gil*_*man 4

我得出的结论是,此功能无法立即使用,因此我在 Objective-C 中实现了一个名为“ react-native-masked-view”的本机组件。

基本思想是使用maskUIView 类的属性:

CALayer *mask = [CALayer layer];
mask.contents = (id)[_maskUIImage CGImage];
mask.frame = self.bounds; //TODO custom: CGRectMake(left, top, width, height);
self.layer.mask = mask;
self.layer.masksToBounds = YES;
Run Code Online (Sandbox Code Playgroud)

它在 JavaScript 中的工作原理如下:

<MaskedView maskImage="mask.png">
   ...
</MaskedView>
Run Code Online (Sandbox Code Playgroud)