【发布时间】:2011-04-29 17:58:45
【问题描述】:
我正在尝试向我的 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 的大小,或者如何让标准控件元素可访问,同时还让我自己添加控件?
【问题讨论】:
标签: ios mobile titanium appcelerator