У меня очень странная проблема с UIWebView:
В моем приложении есть функция, которая открывает UIWebView, чтобы показать мою политику конфиденциальности. Функция вызывается дважды из двух разных представлений. Один раз, если пользователь нажимает кнопку на экране входа в систему, и один раз, если пользователь нажимает кнопку в представлении, которое находится поверх представления карты Google.
Когда функция вызывается из представления входа в систему, все работает нормально, и я может, но когда функция вызывается из другого представления, UIWebView появляется, но не полностью работоспособен (для тестирования я загружаю google.com):
Я не могу прокручивать и не могу открыть большинство ссылок, единственные элементы , которые реагируют на сенсорные события, отмечены на этом рисунке:
И вот мой код: в моем appdelegate у меня есть:
- (void)showPrivacy:(UIView *)view
{
overlay = [[UIView alloc] initWithFrame:view.frame];
overlay.backgroundColor = [UIColor blackColor];
overlay.alpha = 0;
[view addSubview:overlay];
privacyView = [[WPPrivacyView alloc] initWithFrame:CGRectMake(15, 40, view.frame.size.width-30, view.frame.size.height-75)];
privacyView.layer.shadowColor = [UIColor blackColor].CGColor;
privacyView.layer.shadowOffset = CGSizeMake(0, 1);
privacyView.layer.shadowOpacity = 0.75;
privacyView.layer.shadowRadius = 20.0f;
privacyView.userInteractionEnabled = YES;
privacyView.scrollView.scrollEnabled = YES;
privacyView.scrollView.bounces = NO;
privacyView.scalesPageToFit = YES;
[view addSubview:privacyView];
[UIView animateWithDuration:0.1 animations:^{
privacyView.alpha = 1;
}];
privacyView.transform = CGAffineTransformScale(CGAffineTransformIdentity, 0.1, 0.1);
CAKeyframeAnimation *bounceAnimation = [CAKeyframeAnimation animationWithKeyPath:@"transform.scale"];
bounceAnimation.values = [NSArray arrayWithObjects:
[NSNumber numberWithFloat:0.1],
[NSNumber numberWithFloat:1.1],
[NSNumber numberWithFloat:0.95],
[NSNumber numberWithFloat:1.0], nil
];
bounceAnimation.duration = 0.3;
bounceAnimation.removedOnCompletion = NO;
[privacyView.layer addAnimation:bounceAnimation forKey:@"bounce"];
privacyView.layer.transform = CATransform3DIdentity;
}
Чтобы скрыть представление, я вызываю: - (void) hidePrivacy {[UIView animateWithDuration: анимация 0.3: ^ {privacyView.alpha = 0; privacyView.transform = CGAffineTransformScale (CGAffineTransformIdentity, 0,1, 0,1); } завершение: ^ (BOOL завершен) {[privacyView removeFromSuperview]; }]; } Функция showPrivacy вызывается из представления входа в систему и из представления карты следующим образом:
WPAppDelegate *appDelegate = [[UIApplication sharedApplication]delegate];
[appDelegate showPrivacy:self.view];
Итак, почему все работает нормально, когда веб-просмотр отображается в представлении входа в систему, и почему я могу управлять НЕКОТОРЫМИ элементами, но не всеми, когда он отображается в представлении карты?