Подкласс UIView от ViewController

Я пытаюсь показать учебник на экране (например, картинку с подсказками) в моем viewController. Я знаю только, как «открыть» UIView с помощью его метода drawRect, где мой код краски находится внутри, из AppDelegate с помощью:

BannerView *view = [[BannerView alloc] initWithFrame:self.window.frame];
[self.window addSubview:view];
[self.window makeKeyAndVisible];

Можно ли активировать UIView (BannerView) кнопкой внутри ViewController?

Большое спасибо!


person Linus    schedule 13.01.2013    source источник


Ответы (2)


Просто используйте этот код:

BannerView *view = [[BannerView alloc] initWithFrame:self.view.bounds];
[self.view addSubview:view];

в вашем методе действия кнопки (если он определен в вашем классе контроллера). Смотрите это С.О. вопрос, чтобы узнать, как создать кнопку программно. В противном случае вы можете использовать для этого конструктор интерфейсов.

Использование self.view.bounds в initWithFrame сделает вид вашего баннера таким же большим, как вид контроллера (который может быть меньше, чем дисплей).

person sergio    schedule 13.01.2013

Я считаю, что вы ищете добавление обработчика событий к кнопке на контроллере представления, который создаст представление и добавит представление, используя что-то вроде

BannerView *view = [[BannerView alloc] initWithFrame:CGRectMake(x,y,width,height)];
[self.view addSubview:view];

где self — это контроллер представления.

person Tony    schedule 13.01.2013