遮蔽UIImageView的区域或显示视图的一部分

时间:2011-05-19 04:54:33

标签: ios uiview uiimageview

是否有办法将UIImageView的区域(由框架定义)遮挡而不创建重叠的UIView实例(使用此框架)并将其涂黑?

是否有同样的方式来揭示UIImageView的一部分,而不使用UIView实例来遮蔽图像的其余部分?

2 个答案:

答案 0 :(得分:1)

我会在这里作弊,并建议您使用图层,因为它们很轻。

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

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

答案 1 :(得分:0)

您可以将UIIMageView子类化,并根据drawRectMethod中的需要进行绘制。

  1. 您可以创建UIIMageView的子类,并在那里定义drawRectMethod。
  2. 你也可以通过在视图上调用setNeedsLayout方法随意调用drawRectMethod。(setNeedsDisplay - 使drawRect被调用 - 。只有contentMode = UIViewContentModeRedraw才会在视图边界发生变化时调用setNeedsDisplay。)
  3. 更新:

    http://developer.apple.com/library/ios/#documentation/CoreGraphics/Reference/CoreGraphics_Framework/_index.html