【问题标题】:Change size of showCamera overlay更改 showCamera 叠加层的大小
【发布时间】: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


    【解决方案1】:

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

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

    【讨论】:

    • 不透明度根本不会影响这一点。即使视图是不可见的,它也让我无法接触到它背后的控件。
    • 在里面添加另一个视图也无济于事,恐怕。如果我将父元素设置为touchEnabled:false,那么这也适用于所有子元素,没有办法(我知道)改变它。
    • 我知道子元素从父元素获得touchEnabled 属性,但您可以覆盖每个子元素。然而,在仔细查看 KitchenSink 之后,他们提供的 Camera Overlay 似乎确实涵盖了默认的相机控件。
    • 除非我做错了什么,否则您不能更改子元素上的 touchEnabled。只是尝试向叠加层添加另一个视图以将我的控制元素放入其中,但没有成功。顺便说一句,更改 top 等也没有任何效果。对于showCamera,看起来覆盖的大小/位置是完全固定的。不过感谢您的想法!
    • 嘿 _Lasar 我不确定这是否适用于相机,但在最新的 KS 示例中github.com/appcelerator/titanium_mobile/blob/master/demos/… 他们将您需要的默认相机按钮直接构建到叠加层中。希望这能真正解决问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-12
    • 2023-01-12
    • 1970-01-01
    • 1970-01-01
    • 2020-07-18
    相关资源
    最近更新 更多