Ios 遮光UIImageView的区域或显示部分视图

Ios 遮光UIImageView的区域或显示部分视图,ios,uiview,uiimageview,Ios,Uiview,Uiimageview,有没有一种方法可以将UIImageView的某个区域(由一帧定义)涂黑,而不创建覆盖UIView实例(使用此帧)并将其涂黑 是否有类似的方法可以显示UIImageView的一部分,而不使用UIView实例来遮住图像的其余部分?您可以在DrawRect方法中对UIImageView进行子类化,并根据需要进行绘制 您可以创建UIIMageView的子类,并在那里定义drawRectMethod 您还可以通过调用视图上的setNeedsLayout方法来调用drawRect方法。(setNeedsDi

有没有一种方法可以将
UIImageView
的某个区域(由一帧定义)涂黑,而不创建覆盖
UIView
实例(使用此帧)并将其涂黑


是否有类似的方法可以显示
UIImageView
的一部分,而不使用UIView实例来遮住图像的其余部分?

您可以在DrawRect方法中对UIImageView进行子类化,并根据需要进行绘制

  • 您可以创建UIIMageView的子类,并在那里定义drawRectMethod
  • 您还可以通过调用视图上的setNeedsLayout方法来调用drawRect方法。(setNeedsDisplay-导致调用drawRect-。只有contentMode=UIViewContentModeRedraw会导致在视图边界更改时调用setNeedsDisplay)
  • 更新:


    我想在这里略作欺骗,并建议您使用layer,因为它很轻

    CALayer *blackLayer = [CALayer layer];
    blackLayer.backgroundColor = [UIColor blackColor];
    blackLayer.frame = imageView.bounds;
    [imageView.layer addSublayer:blackLayer];
    

    对于第二部分,你可以考虑使用一个层次的网格(黑色)。当用户触摸图像视图时,您可以从他触摸过的区域中拾取图层,并将其从超级图层(即图像视图的根图层)中删除。

    感谢您的更新。对于
    drawRect:
    方法中的内容,我仍然不清楚。这正是我想要的。你可以使用CoreGraphics在drawRect方法的子类视图上绘制你想要的任何东西。在您的情况下,我认为您需要将区域设置为黑色。这可以使用核心图形来完成。