PDFView の表示設定まとめ
関連記事
※ iOS 11 beta 時点での検証です
検証コード
- (void)viewDidLoad { [super viewDidLoad]; PDFView *view = [[PDFView alloc] initWithFrame:self.view.bounds]; view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; view.autoScales = YES; view.displayDirection = kPDFDisplayDirectionVertical; view.displayMode = kPDFDisplaySinglePage; view.displaysRTL = NO; [self.view addSubview:view]; NSURL *URL = [[NSBundle mainBundle] URLForResource:@"test" withExtension:@"pdf"]; PDFDocument *document = [[PDFDocument alloc] initWithURL:URL]; view.document = document; }
検証結果
画像の数字は表示ページ数
白背景は初期状態で表示される部分、灰色部分はスクロール領域の部分
displaysRTL = NO
kPDFDisplayDirectionVertical | kPDFDisplayDirectionHorizontal | |
---|---|---|
kPDFDisplaySinglePage | ||
kPDFDisplaySinglePageContinuous | ||
kPDFDisplayTwoUp | ||
kPDFDisplayTwoUpContinuous |
displaysRTL = YES
kPDFDisplayDirectionVertical | kPDFDisplayDirectionHorizontal | |
---|---|---|
kPDFDisplaySinglePage | ||
kPDFDisplaySinglePageContinuous | ||
kPDFDisplayTwoUp | ||
kPDFDisplayTwoUpContinuous |
以下の2点がポイント
displaysRTL
の設定はkPDFDisplayTwoUp
とkPDFDisplayTwoUpContinuous
の時のみ効果有りで見開きの左右を指定するパラメータkPDFDisplayTwoUpContinuous
にしているとkPDFDisplayDirectionHorizontal
の設定は効果無し。見開きのまま横スクロールは出来ない。(仮に横スクロール出来たしたとしてもkPDFDisplaySinglePageContinuous
と見た目が変わらないため?)
という事で、ページ送り(スクロール)自体を右から左にしてくれるオプションは無いようなので日本の小説や漫画など縦書きのコンテンツを表示させる場合は Continuous モードを使わないで自前でページ移動を実装する必要がある。