2011-05-19 76 views
2

有沒有辦法在不創建覆蓋UIView實例(使用此幀)的情況下將UIImageView的區域(由幀定義)遮住並將其遮住?遮擋UIImageView的區域或顯示視圖的一部分

是否有類似的方法來揭示UIImageView的一部分,而不使用UIView實例將圖像的其餘部分遮住?

回答

1

,我要在這裏騙一點,並建議你使用層,因爲它們是重量輕。

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

對於第二部分,您可以考慮使用圖層的網格(黑色)。當用戶觸摸圖像視圖時,您可以從他觸摸的區域中選取圖層,並將其從超級圖層(即圖像視圖的根層)中移除。

0

您可以繼承UIIMageView並根據drawRectMethod中的需要進行繪製。

  1. 您可以創建UIIMageView的子類,並在那裏定義drawRectMethod。 (setNeedsDisplay - 導致drawRect被調用 - 只有contentMode = UIViewContentModeRedraw會在視圖邊界發生變化時調用setNeedsDisplay)。你可以通過在視圖上調用setNeedsLayout方法來調用drawRectMethod。

UPDATE:

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

+0

你可以在此擴展嗎? [我想接受你的回答。] – SK9 2011-05-19 05:23:39

+0

@ SK9:更新了答案 – Krishnan 2011-05-19 13:51:56

+0

感謝您的更新。我仍然不清楚'drawRect:'方法的含義。這真的是我所追求的。 – SK9 2011-05-20 01:30:01