Изменить размер оверлея showCamera - PullRequest
0 голосов
/ 29 апреля 2011

Я пытаюсь добавить дополнительные элементы интерфейса для отображения showCamera в моем приложении для iOS.

Я знаю, что могу добавить оверлей с кодом ниже. Проблема: этот оверлей будет всегда иметь размер всего экрана. Это проблема, поскольку элементы управления камеры по умолчанию (вспышка, 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 голосов
/ 29 апреля 2011

Если вам myOverlay на самом деле не нужно покрывать эти элементы управления, вы можете попытаться установить для opactity значение ниже 1 и оставить для touchEnabled значение false, чтобы проходить черезСобытия.Я предполагаю, что таким образом пользователь все еще мог видеть элементы управления через myOverlay.Также вы пытались возиться с позиционированием: top, right, bottom, left?

Это может быть ужасный обходной путь, но если первое представление имеет полный размер, вы также можете попытаться установить opacity в 0а затем добавить другой вид внутри первого вида с нужным размером и ползунком в нем?

...