Я не уверен, как задать этот вопрос, но здесь идет ...
Я отображаю PDF-страницу в виде и добавляю ее в UIViewController. Работает нормально, за исключением некоторых файлов PDF.
По некоторым причинам код проходит по другому пути для определенных файлов PDF. Это происходит, когда PDF создается из PowerPoint. После вызова addSubview он проходит путь, который изменяет фрейм представления PDF. Я добавил наблюдателя для PDFViewController.view.frame и трассировка идет:
0 -[PDFViewController observeValueForKeyPath:ofObject:change:context:]
1 NSKVONotify
2 -[NSKeyValueObservance observeValueForKeyPath:ofObject:change:context:]
3 NSKVONotify
4 -[NSObject(NSKeyValueObserverNotification) didChangeValueForKey:]
5 _NSSetRectValueAndNotify
6 -[UIViewController viewDidMoveToWindow:shouldAppearOrDisappear:]
7 -[UIView(Internal) _didMoveFromWindow:toWindow:]
8 -[UIView(Hierarchy) _postMovedFromSuperview:]
9 -[UIView(Internal) _addSubview:positioned:relativeTo:]
10 -[UIView(Hierarchy) addSubview:]
11 (rest of trace is expected)
Для большинства файлов PDF это работает нормально. Но для некоторых кадр добавленного вида изменяется где-то в [UIViewController viewDidMoveToWindow:shouldAppearOrDisappear:]
. Координата y начала координат уменьшается на 43 пикселя, а высота уменьшается примерно на 20%. Я не могу найти какую-либо информацию о том, что происходит внутри этого метода, он кажется внутренним для UIViewController.
У кого-нибудь есть идеи, почему изменяется рамка? По крайней мере, толчок в правильном направлении?
Заранее спасибо.
EDIT:
Теперь я почти уверен, что это [UIViewController viewDidMoveToWindow:shouldAppearOrDisappear:]
, что напортачил. Я реализовал пустой метод -viewDidMoveToWindow:(UIWindow *)shouldAppearOrDisappear:(BOOL)flag
в PDFViewController, и ошибка исчезла. Но это не похоже на исправление, а может привести к отклонению приложения. >. <</p>
Кто-нибудь с любыми предложениями / комментариями?