回答編集履歴

2

sample code

2019/09/18 01:00

投稿

takabosoft
takabosoft

スコア8356

test CHANGED
@@ -29,3 +29,115 @@
29
29
 
30
30
 
31
31
  とりあえず回避策として、上で載せたようにviewDidLayoutSubviewsに初回の一回だけ実行されるようなコードにしてPDFView周りの初期化するのが良いのではないかと思います。
32
+
33
+
34
+
35
+ 実装例:
36
+
37
+ ```swift
38
+
39
+ import UIKit
40
+
41
+ import PDFKit
42
+
43
+
44
+
45
+ class ViewController: UIViewController {
46
+
47
+
48
+
49
+ @IBOutlet weak var pdfView: PDFView!
50
+
51
+ @IBOutlet weak var pdfThumbnailView: PDFThumbnailView!
52
+
53
+
54
+
55
+ private var isPDFInitialized = false
56
+
57
+
58
+
59
+ var pdfURL: URL? {
60
+
61
+ return Bundle.main.url(forResource: "pdfSample", withExtension: "pdf")
62
+
63
+ }
64
+
65
+
66
+
67
+ override func viewDidLoad() {
68
+
69
+ super.viewDidLoad()
70
+
71
+ }
72
+
73
+
74
+
75
+ override func viewDidLayoutSubviews() {
76
+
77
+ super.viewDidLayoutSubviews()
78
+
79
+
80
+
81
+ if !isPDFInitialized {
82
+
83
+ isPDFInitialized = true
84
+
85
+ showPDF()
86
+
87
+ }
88
+
89
+ }
90
+
91
+
92
+
93
+ private func showPDF() {
94
+
95
+ guard let url = pdfURL else {
96
+
97
+ print("error")
98
+
99
+ return
100
+
101
+ }
102
+
103
+
104
+
105
+ let pdfDocument = PDFDocument(url: url)
106
+
107
+
108
+
109
+ //画面サイズに収まるように表示
110
+
111
+ pdfView.autoScales = true
112
+
113
+ // 単一ページのみ表示
114
+
115
+ pdfView.displayMode = .singlePage
116
+
117
+ //スクロール方向を水平方向へ
118
+
119
+ pdfView.displayDirection = .horizontal
120
+
121
+ //余白を入れる
122
+
123
+ pdfView.displaysPageBreaks = true
124
+
125
+ pdfView.pageBreakMargins = UIEdgeInsets(top: 10.0, left: 20.0, bottom: 10.0, right: 20.0)
126
+
127
+
128
+
129
+ //上で取得したpdfDocumentをdocumentに設定し、表示させる
130
+
131
+ pdfView.document = pdfDocument
132
+
133
+
134
+
135
+ pdfThumbnailView.layoutMode = .horizontal
136
+
137
+ pdfThumbnailView.pdfView = pdfView
138
+
139
+ }
140
+
141
+ }
142
+
143
+ ```

1

open radar

2019/09/18 01:00

投稿

takabosoft
takabosoft

スコア8356

test CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
 
4
4
 
5
- https://stackoverflow.com/questions/55362754/theres-problem-with-pdfkit-appeared-after-update-to-xcode-10-2-is-there-any-wa
5
+ [There's problem with PDFKit appeared after update to Xcode 10.2. Is there any way to solve?](https://stackoverflow.com/questions/55362754/theres-problem-with-pdfkit-appeared-after-update-to-xcode-10-2-is-there-any-wa)
6
6
 
7
7
 
8
8
 
@@ -15,3 +15,17 @@
15
15
  >
16
16
 
17
17
  すべてのコードをviewDidAppearに移動して、問題があるかどうかを確認してください。クラッシュがなくなると、私たちは正しい軌道に乗っています。必要に応じて、より良いイベントに移動して実験することができます。 viewDidLayoutSubviewsが推奨されます。コードを複数回実行しないでください(Boolインスタンスプロパティをフラグとして使用してください)。
18
+
19
+
20
+
21
+ ----
22
+
23
+
24
+
25
+ バグレポートとして報告もされているもよう。
26
+
27
+ [Crash when loading PDFDocument into PDFView](http://www.openradar.me/49780971)
28
+
29
+
30
+
31
+ とりあえず回避策として、上で載せたようにviewDidLayoutSubviewsに初回の一回だけ実行されるようなコードにしてPDFView周りの初期化するのが良いのではないかと思います。