2012-02-23 4 views
2

У меня есть подкласс UIView. Мне нужно отображать новый UI-View всякий раз, когда я обнаруживаю событие касания.Подкласс UIView, событие касания

Я знаю, что я должен переопределить следующий метод:

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event; 

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

Я попытался следующие:

CGRect screenSize = [[UIScreen mainScreen] bounds]; 
UIView *mysubview = [[UIView alloc] initWithFrame : screenSize]; 
[self.window addSubview:mysubview]; 

Но я не уверен, что это правильный способ сделать это.

Может ли кто-нибудь дать мне совет?

ответ

0

В таких случаях я использую mySubView.frame = self.view.frame;

0

Вместо того, чтобы добавлять представление к окну, почему бы просто не добавить его в качестве подвид представления, перехватывающего штрихи?

UIView *mySubview = [[UIView alloc] initWithFrame:self.bounds]; 
[self addSubview:mySubview]; 

После выяснения, казалось бы, что пользовательский вид является своего рода кнопки, и вы хотите, чтобы новый вид, чтобы быть полноэкранный вид где-то в иерархии. Это действительно работа для UIViewController, которая знает, где положить новый вид. Вы можете использовать UITapGestureRecognizer на пользовательском представлении вместо того, чтобы реализовать свой собственный код обработки касания, с UIViewController с полным экраном в качестве цели. В методе действия распознавателя жестов вы можете создать свое новое представление и добавить его как подпункт иерархии UIViewController.

+0

поскольку вид, который прослушивает событие касания, не является полноэкранным, он имеет только 100 пикселей в высоту и расположен в нижней части экрана –

Смежные вопросы