更改showCamera叠加层的大小

时间:2011-04-29 17:58:46

标签: ios mobile titanium appcelerator

我正在尝试在iOS应用中为showCamera显示添加其他界面元素。

我知道我可以使用下面的代码添加叠加层。问题:此叠加层始终具有整个屏幕的大小。这是一个问题,因为相机的默认控制元素(闪光灯,HDR,相机切换台)不再可访问。

touchEnabled: false中设置createView()会使所有事件都通过。这使得原始控制元素起作用,代价是我的新元素根本无法访问。

所以我的想法是让视图变小,以免它阻碍顶部的原始元素。我自己的控件将位于中间/右侧,因此没有冲突。但是,没有这样的运气。

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的大小,或者如何让标准控件元素可访问,同时让我自己控制?

1 个答案:

答案 0 :(得分:0)

如果myOverlay实际上不需要涵盖这些控件,那么您可以尝试将opactity设置为低于1的值,并将touchEnabled设置为false关于通过事件。我假设用户仍然可以通过myOverlay看到控件。你还试着搞定位:top, right, bottom, left

这可能是一个糟糕的解决方法,但如果第一个视图是完整尺寸,那么您还可以尝试将opacity设置为0,然后使用适当的视图在第一个视图中添加另一个视图它的大小和滑块?