iPhone.Проблема после перемещения вида из экрана внутрь экрана - PullRequest
0 голосов
/ 10 ноября 2010

Я думаю, что название вопроса довольно плохо объяснено, поэтому я постараюсь сделать его лучше здесь.У меня есть проект UIViewController.Внутри основного вида я поместил еще один уменьшенный вид (320x200), назовем его menu .Этот вид в основном размещен вне видимого экрана, в точке (0, -180), поэтому при запуске приложения верхние 20 пикселей отображаются из меню, а остальные - из основного.Очистить до сих пор?

Когда пользователь касается этой видимой части меню (есть кнопка UIB), весь self.view движется вниз с анимацией, поэтому все меню отображается на экране.В этом меню есть больше кнопок для перехода к другим представлениям и выполнения других действий, но при касании кнопок они вообще не реагируют.Как заставить кнопки работать?Любые советы здесь?

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

before after

Добавление кода по запросу: Когда я говорю, что представление перемещается, да, я имею в виду кадр с анимацией, подобной этой:

[UIView beginAnimations:@"MenuAnimationShow" context:NULL];
[UIView setAnimationDuration:1];
[self.view setFrame:CGRectOffset([self.view frame], 0, menu.frame.size.height-15)];
self.view.center = CGPointMake(160, 240 + menu.frame.size.height - 15);
[UIView commitAnimations];

А также, да, кнопки подключаются к IBAction, но при нажатии ничего не происходит.У меня есть некоторые NSLog в каждом из них, но я никогда не получаю что-либо регистрировать.Как будто ты никогда не прикасаешься к ним.Если я поставлю меню UIView поверх основного вида (self.view), они тоже не будут работать.Более того, меню игнорируется, потому что если что-то внизу (zPosition), вы можете коснуться этого элемента.

1 Ответ

1 голос
/ 10 ноября 2010

Вы не должны перемещать self.view, вы должны перемещать рамку меню, и вам нужно только переместить центр, так как это повлияет на положение рамки (я предполагаю, что ваша ширина / высота рамки не не должен измениться).

[UIView beginAnimations:@"MenuAnimationShow" context:NULL];
[UIView setAnimationDuration:1];
self.menu = CGPointMake(320/2, menu.frame.size.height/2);
[UIView commitAnimations];
...