0

テーブルを持つポートレート モードのみをサポートするアプリケーションがあり、各セルにはタイトルと YouTube ビデオの Web ビューが含まれています。

では、YouTube プレーヤーを横向きモードと縦向きモードの両方にするにはどうすればよいでしょうか。

    [cell.titleLabel setText:[[[StoreVars sharedInstance].sharedArrayOfVideo objectAtIndex:indexPath.row] objectForKey:@"title"]];
    NSString *ID = [[[StoreVars sharedInstance].sharedArrayOfVideo objectAtIndex:indexPath.row] objectForKey:@"id"];
    NSString *code = [NSString stringWithFormat:@"<iframe width=\"280\" height=\"170\" src=\"//www.youtube.com/embed/%@\" frameborder=\"0\" allowfullscreen></iframe>",ID];
    NSLog(@"Loading video: %@",code);
    [cell.videoWebView loadHTMLString:code baseURL:[NSURL URLWithString:@"http:"]];
    [cell.videoWebView.scrollView setScrollEnabled:NO];
    [cell.videoWebView.scrollView setBounces:NO];

私は周りを検索してこのようなコードを見つけましたが、セルのウェブビューにアクセスできません。

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    if(webView && webView.superView) return YES;
    return UIInterfaceOrientationIsPortrait(interfaceOrientation);
}
4

1 に答える 1

0

iOS 6.0 以降向けに開発している場合は、 -supportedInterfaceOrientationsを使用することをお勧めします

ただし、このメソッドを使用してセルを回転させることはお勧めしません。デバイスの向きが変わるたびに呼び出されるとは限らないためです (特に、親コントローラーが既にランドスケープを無効にしている場合)。(サブクラス) セル内でUIDeviceOrientationDidChangeNotificationをリッスンして webview を回転させ、(テーブル ビューを使用して) ビュー コントローラー内で -reloadData を実行して、セルのサイズを適切に変更することができます (横長の webview が縦向きのウェブビューよりもはるかに高い)

于 2013-08-21T08:06:00.820 に答える