Ios 更改showCamera覆盖的大小

Ios 更改showCamera覆盖的大小,ios,mobile,titanium,appcelerator,Ios,Mobile,Titanium,Appcelerator,我正在尝试向iOS应用程序中的showCamera显示屏添加其他界面元素 我知道我可以用下面的代码添加一个覆盖。问题:此覆盖将始终具有整个屏幕的大小。这是一个问题,因为相机的默认控制元件(闪光灯、HDR、相机切换器)不再可访问 在createView()中设置touchEnabled:false,使其能够传递所有事件。这使得原来的控件元素可以工作,但代价是我的新元素根本无法访问 所以我的想法是缩小视图,这样就不会妨碍顶部的原始元素。我自己的控件将位于中间/右侧,因此没有冲突。然而,没有这样的运气

我正在尝试向iOS应用程序中的showCamera显示屏添加其他界面元素

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

createView()
中设置
touchEnabled:false
,使其能够传递所有事件。这使得原来的控件元素可以工作,但代价是我的新元素根本无法访问

所以我的想法是缩小视图,这样就不会妨碍顶部的原始元素。我自己的控件将位于中间/右侧,因此没有冲突。然而,没有这样的运气

createView
中设置
height
/
width
属性不起任何作用。稍后设置这些属性(直接或通过
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
的大小,或者如何使标准控件元素可以访问,同时也允许我加入自己的控件?

如果你
myOverlay
实际上不需要覆盖这些控件,那么你可以尝试将
不透明度
设置为一个值低
1
并保持
touchEnabled
设置为
false
,以便通过事件传递。我假设这样用户仍然可以通过
myOverlay
查看控件。您是否尝试过摆弄定位:
上、右、下、左


这可能是一个很糟糕的解决方法,但是如果第一个视图是全尺寸的,那么你也可以尝试将
不透明度设置为
0
,然后在第一个视图中添加另一个视图,并在其中添加合适的大小和滑块?

不透明度根本不会影响这一点。即使视图不可见,也会阻止我进入控制trols。在内部添加另一个视图恐怕也不会有帮助。如果我将父元素设置为
touchEnabled:false
,那么这也适用于所有子元素,没有办法(我知道)更改此项。我知道子元素从父元素获得
touchEnabled
属性,但您可以为每个子元素覆盖该属性。但是,在仔细查看KitchenSink后,它们提供的摄影机覆盖层似乎确实覆盖了默认的摄影机控件。除非我做错了什么,否则您无法在上更改touchEnabled子元素。只是尝试向覆盖添加另一个视图以将我的控制元素放入其中,但没有成功。顺便说一句,更改
顶部
等也没有任何效果。看起来覆盖的大小/位置在
showCamera
时是完全固定的。不过感谢您的想法!嘿(Lasar)我不确定这是否适用于但是在最新的KS示例中,他们在覆盖层中构建了自己的默认相机按钮。希望这能真正解决这个问题。