2010-04-22 41 views
1

我有一個UIView其中包含一個可縮放的UIImageView和另一個半透明UIView最重要的。UIScrollview有兩個圖像 - 保留1圖像可縮放和1圖像靜態(固定大小)

我想實現的是能夠在保持半透明視圖爲靜態而不縮放的同時放大UIImageView

如果我在UIImageView(它被添加到UIScrollView)之上添加半透明UIView,則所有內容都會放大。但是,如果我將這兩個都作爲子視圖添加到基地UIView,則只會跟蹤從最後一個添加後的半透明UIView

我確實需要控制,因爲我可能想要調整半透明視圖的大小,所以首先在半透明UIView處居住。但是,如果使用兩個手指,我想將觸摸的控制權交給UIScrollView。無論如何對我來說實現這一目標?下一個響應者似乎不工作。除了子類UIWindow之外,我還嘗試使用hittest,但基礎UIView需要推/導航控制能力,所以我不認爲我可以繼承UIWindow以推入導航堆棧。

任何幫助,將不勝感激。

感謝,

溫斯頓

回答

1

嗯..你可以試試這個層次(可能是子類):

UIView (container) 
> UIView (semitransparent overlay) 
> UIScrollview 
    - UIView (zoomable content) 

與此類似,覆蓋不結垢。

然後棘手的是用戶在多個圖層上的交互。如果覆蓋區域中有區域不應檢測用戶觸摸,那麼它很容易,因爲您只需將UIView屬性「userInteractionEnabled」設置爲「NO」,以便將觸摸應該「轉發」到下層圖層的視圖部分。

但是如果我找到你的話,你需要更復雜的東西。您可能可以在容器UIView中設置某種主觸摸控制器,它可以找出發生了什麼,然後調用其子視圖的某些方法/轉發事件。 我不知道您需要在容器中覆蓋/實現的所有確切方法,但請查看ScrollView Suite示例代碼中的tapZoom演示。這是一個很好的例子。

只是出於好奇,請問這是什麼交互模式?

+0

Hello Efrain, 感謝您的回覆。 基本上我試圖實現的效果是在圖像頂部有一個帶有黑暗半透明圖層的圖像。這個變暗的圖層包含一個矩形框,可以看到原始圖層(變得清晰)。這個可以通過角落調整的裁剪盒。 我希望這有助於解釋。我相信我嘗試了你的解決方案,並會再試一次,我記得它並沒有提供我正在尋找的效果並沖掉了面罩層 真的很感謝你的幫助:) Winston – Winston 2010-04-23 23:19:43

+0

btw ..關於什麼樣的觸摸事件正在轉發等,也許你可以通讀這個: http://developer.apple。COM/iphone /庫/文件/ iPhone /概念/ iPhoneOSProgrammingGuide/EventHandling/EventHandling.html – Efrain 2010-04-26 08:11:07