Обзор: У меня странная ошибка, когда кнопки с правой стороны моего портрета не работают после поворота на пейзаж, а затем снова на портрет.UIButtons перестает работать после поворота на пейзаж, а затем обратно на портрет
Деталь: Вот сценарий, который создает проблему. Если я начну с портрета, все мои кнопки работают. Я вращаюсь к пейзажу (см. Код ниже), и все кнопки работают. Я поворачиваю назад к портрету, а кнопки справа 1/4 экрана не реагируют. Это похоже на прозрачный вид, который охватывает эти кнопки. Странно то, что если часть кнопки торчит слева от этого невидимого барьера, я могу нажать на эту часть кнопки, но не на правую часть, находящуюся под «крышкой». Если бы я сейчас вращался до пейзажа, все кнопки в пейзажной работе. Когда я поворачиваюсь назад к портрету, эта невидимая «обложка» переместилась влево на другую 1/4, чтобы покрыть примерно 1/2 экрана. Если я снова повернусь к пейзажу (все кнопки всегда работают в альбомной ориентации), а затем назад к портрету, невидимая «обложка» переместилась на другую 1/4, чтобы закрыть 3/4 экрана. В конце концов, ни один из моих элементов управления не реагирует на портрет.
Важная информация Проект:
- Это приложение является универсальным. Проблема возникает только в режиме просмотра iPad. Версия iPhone никогда не показывает эту проблему в портретном (или ландшафтном) режиме.
- Имеются только 3 вида: вид контейнера (который является корнем), портретный вид и пейзаж.
- Это приложение ARC и цели 6.1. У меня есть все правильные методы обработки событий вращения.
Вот код для вращения просмотров:
[portrait removeFromSuperview];
[landscape removeFromSuperview];
UIDeviceOrientation currentOrientation = [[UIDevice currentDevice] orientation];
if (currentOrientation==UIDeviceOrientationUnknown) {
currentOrientation = (UIDeviceOrientation)[[UIApplication sharedApplication] statusBarOrientation];
}
if ((currentOrientation == 0) || (UIInterfaceOrientationIsPortrait(currentOrientation))) {
[[self view] addSubview:portrait];
}
else { //landscape
[[self view] addSubview:landscape];
}
То, что я пытался:
- Вопросы, которые я обнаружил, что звук отдаленно напоминающей упоминается проверка на наличие утечек памяти с помощью инструменты. Я пробовал шаблоны зомби и распределения и не видел ничего странного (хотя это первый я использовал Инструменты).
- EDIT: все это в симуляторе, я еще не тестировал эту проблему на устройстве.
Благодарим за помощь.
Вы опрашиваетесь подвиды во время выполнения и добавили границу для каждого, так что вы можете увидеть, где они? – Wain
Это не имеет никакого отношения к утечкам памяти, кнопки, вероятно, движутся вне границ своего супервизора. Дайте надписью цвет фона, чтобы вы могли видеть, где он находится, и посмотрите, что происходит. – rdelmar
Еще проще, установите для свойства 'clipsToBounds' объекта superview значение YES. –