У меня есть приложение со множеством различных кнопок, расположенных в калькуляторе вроде квадратного/прямоугольного формата. На самом деле это очень похоже на калькулятор iOS по умолчанию. Есть приблизительно 6 строк с 4 столбцами каждая из кнопок.
Проблема
Проблема, с которой я сталкиваюсь, включает в себя кнопки в нижнем ряду (приблизительно нижний 10-й экран на iPhone 4). Они не ведут себя нормально при нажатии в том смысле, что при нажатии они должны быть нажаты и удерживаться (примерно на секунду) для регистрации нажатия кнопки. Это противоречит стандартному кратковременному крану.
Никакие другие кнопки, кроме этой нижней строки, не ведут себя таким образом.
Кроме того, если эти кнопки задействованы на их верхнем краю, они ведут себя нормально, реагируя, как только они касаются. Это заставляет меня думать, что сами кнопки не являются проблемами, но есть некоторые проблемы с макетом моих просмотров.
Следует также отметить, что эта проблема присутствует только на физических устройствах. На симуляторе кнопки ведут себя нормально.
Контекст
Вид, содержащий эти кнопки, не является контроллером корневого представления приложения. Вместо этого он переходит к такому (ничего не интересное здесь):
[self presentViewController:navController animated:YES completion:nil];
Где self является контроллером корневого представления
Контроллер представления, с которым у меня возникают проблемы, содержится в контроллере навигации и представлен с помощью контроллера корневого представления, который вы можете видеть выше.
Что я пробовал до сих пор
-
Включение и выключение автоматического макета: та же проблема
-
Изменение иерархии представлений: я переместил проблематичные кнопки сверху и сзади всех остальных представления с тем же результатом: та же проблема
-
Несколько устройств (iPhone 4, 4s, 5): одна и та же проблема (хотя кнопки обычно реагируют как на 3,5-дюймовые, так и на 4-дюймовые симуляторы)
-
Тестирование других приложений (когда кнопки в этой области нажаты в других приложениях, они ведут себя нормально)
Дополнительная информация
- Все выложено в Interface Builder для контроллера проблемных представлений.
- Все кнопки являются системными кнопками со стандартными настройками и все они точно совпадают с их текстом.
- Все элементы экрана (кнопки, метки и т.д.) являются подзонами "view"
- Кнопки находятся на одном уровне друг с другом и не должны перекрывать более одного или двух пикселей.
- Проблемные кнопки имеют размеры: 80 ширина X 44 высота.
- Проблемные кнопки скрыты от нижней части экрана.
- В дополнение к кнопкам есть один UIImage и несколько меток, однако они находятся в верхней части экрана и не перекрываются ни с одной из кнопок.