2013-08-22 4 views
2

У меня есть база данных sqlite строк HTML, которые являются песнями.Изменение размера webview embed внутри scrollview

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

SongDisplay
С этой точки зрения контроллера У меня есть веб-просмотра и метку как вставлять в представлении прокрутки. Прокрутка отключена для моего веб-представления.

Тексты песен, а вид прокрутки изменен правильно. Однако веб-просмотр не изменяется и отображает только некоторые тексты. Я знаю это, потому что у меня есть вид прокрутки и веб-просмотр как разные цвета.

Лучшие зрения прокрутки https://www.dropbox.com/s/8hgpi8nlwnca0v8/iOS%20Simulator%20Screen%20shot%20Aug%2022%2C%202013%2C%202.04.24%20PM.png

Пример задачи здесь, внизу зрения прокрутки https://www.dropbox.com/s/r8l8d82an613hec/iOS%20Simulator%20Screen%20shot%20Aug%2022%2C%202013%2C%201.57.14%20PM.png

Это мой код:

- (void)webViewDidFinishLoad:(UIWebView *)aWebView 
{ 
    CGRect frame = aWebView.frame; 
    frame.size.height = 1; 
    aWebView.frame = frame; 

    CGSize fittingSize = [aWebView sizeThatFits:CGSizeZero]; 

    frame.size = fittingSize; 

    [self.scroll setContentSize:fittingSize]; //scroll is the name of the scroll view 

    aWebView.frame = frame; 

    NSLog(@"size: %f" ,fittingSize.height); 
} 

Как получить как просмотр веб-страниц, так и просмотр прокрутки для изменения размера?

+0

WebViews в ScrollViews не работают хорошо. Скорее всего, скоро это станет лучше. Сейчас это будет проблематично. – Cocoadelica

+0

У меня такая же проблема ( –

ответ

0

Проблема закрепилась, когда OS X Mavericks был официально выпущен. Проблема раньше была, вероятно, результатом ошибки в бета-версиях.

0

Я решил эту проблему путем загрузки содержимого внутри viewWillAppear внутри DetailView как этот

-(void)viewWillAppear:(BOOL)animated 
{ 
    [super viewWillAppear:animated]; 
    [self configureView];//<-- here i am call loadHTMLString 
} 

- (void)configureView 
{ 

    // disabling scroll for webview 
    if ([self.detailWebView respondsToSelector:@selector(scrollView)]) { 
     self.detailWebView.scrollView.scrollEnabled = NO; // available starting in iOS 5 
    } else { 
     for (id subview in self.detailWebView.subviews) 
      if ([[subview class] isSubclassOfClass: [UIScrollView class]]) 
       ((UIScrollView *)subview).scrollEnabled = NO; 
    } 

    // setting content 
    if (self.detailItem) { 
     self.detailTitle.text = self.detailItem->title; 
     //image scaling styles 
     NSString *[email protected]"<style type=\"text/css\">\n" 
     "img { \n" 
     " display: block;" 
     " float:none;" 
     " margin:0 auto;" 
     " max-width:100%;" 
     " height:auto;" 
     "} \n" 
     "</style>\n"; 

     [self.detailWebView loadHTMLString:[style stringByAppendingString:self.detailItem->content] baseURL:nil]; 
    } 
} 
0

В соответствии с рекомендацией компании Apple не следует вставлять WebView вида внутри спирального

Важной

Вы не должны вставлять UIWebView или UITableView объектов в UIScrollView объектов. Если вы это сделаете, может возникнуть непредвиденное поведение, так как события для двух объектов могут быть перемешаны и неправильно обработаны.

Ref: https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIWebView_Class/

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