2011-04-29 71 views
0

我正在嘗試將其他界面元素添加到我的iOS應用中的showCamera顯示。更改showCamera覆蓋的大小

我知道我可以添加下面的代碼覆蓋。問題:這個覆蓋圖總會有具有整個屏幕的大小。這是相機的默認控制元素(閃光燈,HDR,相機切換臺)無法再使用的問題。

設置touchEnabled: falsecreateView()使得所有事件都通過。這使得原始的控制元素工作,而我的新元素根本無法訪問。

所以我的想法是讓視圖變小,這樣它就不會阻擋頂部的原始元素。我自己的控制將位於中間/右側,所以不存在衝突。但是,沒有這樣的運氣。

設置height/width屬性createView什麼都不做。後來(直接或設置這些屬性通過animate()沒有效果

我的簡化代碼:

var myOverlay = Titanium.UI.createView({ 
    backgroundColor: '#0F0', // just to see what is happening 
    height: 200 // does not work 
    // touchEnabled: false 
    // touchEnabled apparently can't be re-enabled for objects contained within this view. 
}); 

var mySlider = Titanium.UI.createSlider({ 
    [...] 
}); 
myOverlay.add(mySlider); 

Titanium.Media.showCamera({ 
    overlay: myOverlay, 
    [...] 
}); 

myOverlay.height = 200; // does not work 
myOverlay.animate({height: 200}); // does not work 

所有這些方法來控制高度時,我同樣覆蓋添加到窗口或其他不工作。覆蓋並非如此,當我使用showCamera()

問題:我如何控制myOverlay的大小或我怎麼否則使標準控制元件訪問,同時還讓我在我自己的控件扔

回答

0

如果myOverlay實際上並不需要覆蓋這些控件,那麼你可以嘗試將opactity設置爲低於1的值,並保持touchEnabled設置爲false爲穿過的事件。我假設用戶仍然可以通過myOverlay看到控件。還有,你曾嘗試搞定位置:top, right, bottom, left

這可能是一個可怕的解決方法,但如果第一個觀點是全尺寸的,那麼你也可以嘗試設置opacity0,然後在它的合適的大小和滑塊裏面添加的第一個視圖的另一個看法?

+0

不透明度不影響這一點。即使視圖是無形的,它也使我無法控制它背後的控制。 – Lasar 2011-04-29 18:51:46

+0

恐怕,在裏面添加另一個視圖也無濟於事。如果我將父元素設置爲'touchEnabled:false',那麼這也適用於所有子元素,但沒有辦法(我知道)要改變它。 – Lasar 2011-04-29 18:52:39

+0

我知道Child元素從父級獲得'touchEnabled'屬性,但是您可以覆蓋每個Child。然而,在仔細觀察KitchenSink之後,他們提供的相機覆蓋看起來確實覆蓋了默認的相機控制。 – bh88 2011-04-29 18:52:40