Кнопки справа от альбомной ориентации не отвечают в симуляторе iPhone iOS5

#iphone #button #ios5

#iPhone #кнопка #ios5

Вопрос:

У меня есть приложение для iPhone, которое работает только в альбомной ориентации. В правой части экрана есть кнопка, а в крайнем левом углу — кнопка.

Нижняя часть с левой стороны работает и реагирует на прикосновения. Однако кнопка с правой стороны не реагирует на прикосновения.

Если я отображаю другой вид и возвращаюсь к основному виду, все кнопки работают.
Если я переместу кнопку непосредственно перед отметкой 3/4 на экране, кнопка сработает. Если я запускаю приложение с помощью симулятора iOS 4.3.2, кнопки также работают.

Я озадачен тем, почему кнопки, расположенные чуть дальше отметки 3/4 на альбомном экране, не отвечают.

Изначально приложение было написано с использованием xCode 4.1 и iOS 4.3.2. Я открыл проект в новом xCode и iOS SDK, и началось такое поведение.

Комментарии:

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

2. Вам действительно придется добавить немного кода…

3. Прошу прощения, если кто-нибудь потратил время на этот вопрос. С тех пор я нашел решение. Хотя это скорее обходной путь, чем решение. Я не думал, что требуется код, поскольку его можно воспроизвести, просто перетащив кнопки на наконечнике влево и вправо.

4. Это приложение с несколькими видами. В MainWindow добавлен класс view, который управляет другими представлениями. Проблема, похоже, в том, что окно MainWindow является портретным, когда все остальные виды в приложении являются альбомными. Таким образом, кнопки справа от точки 320 недоступны. Ни за что на свете я не мог понять, как сделать MainWindow также ландшафтным. Я решил проблему с помощью этого кода:

5. viewMgrClass.view.frame = CGRectMake(0.0, 0.0, 480.0, 320.0); [ window addSubview:viewMgrClass.view]; Первоначально кода .view.frame там не было.

Ответ №1:

Укажите размер кадра для представления в коде AppDelegate перед добавлением его в главное окно.

Добавьте код перед добавлением представления.

 viewMgrClass.view.frame = CGRectMake(0.0, 0.0, 480.0, 320.0); 
  

Он идет перед этой строкой:

 [window addSubview:viewMgrClass.view];
  

Я не мог понять, как сделать MainWindow портретным.