сенсорный ответ ios4 - PullRequest
       16

сенсорный ответ ios4

0 голосов
/ 21 января 2011

Я добавил ViewController в приложение для поддержки рекламных баннеров. Приложение было основано на UINavigationController, поэтому я добавил ViewController в качестве подпредставления для UINavigationController. Теперь область рекламного баннера не распознается при касании, чтобы открыть объявление в сафари. Я пытался заставить ViewController статьFirstResponder, но это не работает. У кого-нибудь есть мысли как починить?

1 Ответ

0 голосов
/ 21 января 2011

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

- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated

Ваш контроллер представления может отвечать на события, потому что это UIResponder. UIView и, следовательно, большинство визуальных элементов управления, таких как UIButton, UISlider и т. Д., Также наследуются от UIResponder - но они реализуют определенные действия, основанные на взаимодействии с пользователем.

Если вы действительно хотите перехватывать события в UIViewController, вам нужно обработать события touchesBegan / Moved / Ended. Скорее всего, у вас есть хотя бы UIWebView или UIImageView в контроллере представления, если он отображает что-то, на что вы хотите нажать.

Если для UIWebView вам потребуется UIWebViewDelegate, реализующий

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType

сообщит вам, какие ссылки открываются.

Если для UIImageView вам также потребуется установить свойство userInteractionEnabled, прежде чем вы увидите какие-либо сенсорные события.

Если вы имеете дело с классом AdBannerView в iAd, который также наследует от UIView, поэтому применяются комментарии для UIImageView. ОДНАКО ADBannerViewDelegate является требованием для встроенной поддержки взаимодействия - так же, как UIWebViewDelegate, вы должны реализовать функцию разрешения / уведомления,

- (BOOL)bannerViewActionShouldBegin:(ADBannerView *)banner willLeaveApplication:(BOOL)willLeave
...