iPhone SDK позволяет касаниям влиять на несколько просмотров

У меня есть главное представление, на котором есть две кнопки, которые управляют методами отображения следующего изображения и отображения предыдущего изображения. В этом случае «Image» - это класс, который наследуется от UIImageView и имеет несколько изображений на нем, с которыми вы можете взаимодействовать, и я называю этот класс «Pane». Сама панель обрабатывает все действия пользователя, в то время как основное представление управляет отображением следующей и предыдущей панелей с помощью кнопок. Вот моя дилемма, потому что панель полностью закрывает основной вид, поэтому пользователь не может нажимать кнопки на основном представлении! Итак, когда всплывающая панель выскакивает, вы не можете изменить ее с помощью кнопок! Есть ли способ разрешить касания через прозрачные части вида, или, если нет, как мне этого добиться ?!

Я не могу передать touchesBegan или любой из этих методов из панели в супервизор, потому что все методы касания кнопок созданы в файле xib.

Я не могу вставить панель под панель управления, потому что тогда вы не сможете взаимодействовать с панелью. И насколько я знаю, нет способа передать события касания на каждую отдельную панель в paneHoldingArray, принадлежащем основному представлению.

Я не могу добавить командные кнопки внутри панели, потому что я хочу иметь возможность заменить изображение командной кнопки отрисовкой отпечатка следующей / предыдущей панели.

Я очень долго зацикливался на этом, пожалуйста, помогите мне с исправлением или новым способом перепроектировать код, чтобы он работал!


person Parad0x13    schedule 19.05.2010    source источник


Ответы (1)


Если вы хотите, чтобы кнопки фиксировали события, разместите их над панелью. Вы говорите, что не можете разместить панель управления над панелью, поэтому разделите кнопки на другое представление, которое можно разместить над панелью. Если вы хотите, чтобы кнопки отображались под другими представлениями, сделайте несколько полностью прозрачных настраиваемых кнопок для обработки ваших действий, которые вы можете наложить поверх.

Я не знаю, что вы имеете в виду под методами касания кнопок, созданными в файле xib, но в целом вы не можете эффективно передавать события касания. Вы должны организовать иерархию представлений так, чтобы представления, которые вы хотите получать события, логически находились наверху. Однако ничто не говорит о том, что виды сверху должны быть непрозрачными или даже видимыми.

person drawnonward    schedule 19.05.2010
comment
Если я разбиваю кнопки на другое представление и помещаю его над панелью, мы теперь имеем ту же ситуацию, что и раньше, когда вы не можете взаимодействовать с панелью, потому что новое представление кнопки блокирует взаимодействие с представлениями под ним. - person Parad0x13; 19.05.2010
comment
Итак, вы хотите, чтобы одно касание запускало два действия при одновременном взаимодействии с двумя представлениями? - person drawnonward; 19.05.2010