iOS - 使用colorWithPatternImage屏蔽而不重复.png文件

时间:2014-12-29 17:10:50

标签: ios design-patterns uiimage masking tintcolor

我正在试图填充模式我的蒙版图像(.png)

UIImageView *imageView = (UIImageView*)_maskView.contentView;
imageView.image = [imageView.image imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
imageView.tintColor = [UIColor colorWithPatternImage:image];

现在我做了我想做的事。但有问题。这是截图:

screenshot

在此屏幕截图中,我将这些图层放回到前面;

  1. mainImageView - >包含瀑布图像。
  2. maskView - >位于mainImageView的顶部。这是一个自定义的UIView。它包含一个 imageView命名为contentView。
  3. contentView - >一个UIImageView。 maskView的子视图。包含 面具图像。我在其tintColor上使用colorWithPatternImage代码。
  4. 正如您所看到的,我的图案图像是平铺(或重复或任何您调用的)。

    我尝试将图案图像的大小调整为imageView的大小,还尝试调整大小到4000X4000这样的高分辨率而没有运气。

    尝试了类似

    的内容
    self.layer.contents = (id)[UIImage imageNamed:@"freshBackground.png"].CGImage;
    

    但是这段代码正在填充整个imageView。

    现在我没有选择权。谁可以帮我这个事?谢谢。

1 个答案:

答案 0 :(得分:0)

我可以确认,使用带有大图像的colorWithPattern我没有很好的体验。它一直设计用于小图像。它尤其无法自行加载2x和3x图像。在我实施的过程中,我使用了

self.view.layer.contents = (id)[UIImage imageNamed:@"freshBackground.png"].CGImage;

关于应用于整个mainView的图像,您还可以考虑创建beizerPath并从mainView中删除它的方法,如图here所示,而不是使用蒙版。