iPhone: открыть локальную HTML-страницу с преобразованием flip

#iphone #uiwebview

#iPhone #uiwebview

Вопрос:

привет,

Я использую следующий код для открытия WebView. Он открывает сайт Apple без какой-либо анимации. Я хочу открыть локальную HTML-страницу с анимацией (например, преобразование flip) и хочу иметь кнопку «Назад», чтобы я мог снова перейти к своему основному приложению. Кто-нибудь, пожалуйста, может помочь мне с этим.

 CGRect frame = [UIScreen mainScreen].bounds;
UIWebView *webView = [[UIWebView alloc] initWithFrame:frame];
[webView setBackgroundColor:[UIColor whiteColor]];
NSString *urlAddress = @"www.apple.com";
NSURL *url = [NSURL URLWithString:urlAddress];
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
[webView loadRequest:requestObj];
[self.view addSubview:webView];
[webView release];
  

Спасибо.

Ответ №1:

Добавьте этот код после добавления вашего webview в качестве подвида в self.view.

     [UIView beginAnimations:nil context:NULL];
     [UIView setAnimationDelay:    0.0f ];       // in seconds  
     [UIView setAnimationDuration: 0.5f ];       // in seconds
     [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight 
                           forView:self.view 
                             cache:YES]; 

         [self.view addSubview:webView];

     [UIView commitAnimations ];
  

Комментарии:

1. Спасибо, Майк. Я добавил ваш код, как вы сказали, с продолжительностью анимации 3 секунды, но это ничего не изменило! Также не могли бы вы рассказать мне, как добавить кнопку «Назад»? Нужно ли создавать панель навигации?

2. Я изменил пример кода — forView:self.view и поместил вызов ‘addSubview’ внутри блока анимации. Если у вас есть UINavigationController (не bar), вы можете перенести свой веб-просмотр на NavController, и вы автоматически получите кнопку «Назад».

3. @Mike: Я немного сбит с толку. У меня есть только основной вид и никаких других вкладок. У меня есть кнопка info, которая открывает HTML-страницу. Я добавил следующий код после блока анимации, но он не работает. code UIBarButtonItem *BackButton = [[UIBarButtonItem alloc] Инициализация с заголовком:@»Назад» стиль: UIBarButtonItemStylePlain цель: ноль действие: ноль]; [self.NavigationController setNavigationBarHidden:НЕТ анимированный: ДА]; self.navigationItem.backBarButtonItem = BackButton; self.NavigationController .NavigationBar.barStyle = UIBarStyleBlack; [Отпустить обратную кнопку]; [self.NavigationController pushViewController:самоанимация: ДА]; code

4. Анимируется ли ваш WebView так, как вы этого хотите?

5. Да. Веб-просмотр анимируется отлично, но NavigationController не добавляется. Я думал, что это может быть скрыто, потому что я устанавливаю рамку WebView на размер экрана, но это также неверно. Я создал файл NIB с помощью WebView и UIToolbar (с кнопкой в качестве UIBarButtonItem) и использовал следующий код. Теперь все работает нормально. code AppInfoScreen * ais = [[AppInfoScreen alloc] Инициализация с именем NIBNAME:@ пакет «AppInfoScreen»: nil]; [аис устанавливает modalTransitionStyle:UIModalTransitionStyleFlipHorizontal]; [self presentModalViewController: аис анимированный: ДА]; [выпуск аис]; code