我不确定如何提出这个问题,但这里有......
我将PDF页面渲染到视图中并将其添加到UIViewController中。工作正常,除了一些PDF文件。
出于某种原因,代码会针对某些PDF文件执行不同的路径。从PowerPoint创建PDF时会发生这种情况。在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的内部信息。
任何人都知道为什么要修改框架?至少在正确的方向上轻推?
提前致谢。
编辑:
现在我很确定它是[UIViewController viewDidMoveToWindow:shouldAppearOrDisappear:]
搞砸了。我在PDFViewController中实现了一个空的-viewDidMoveToWindow:(UIWindow *)shouldAppearOrDisappear:(BOOL)flag
方法,并且bug消失了。但这似乎不是一个修复,但可能会导致被拒绝的应用程序。 >。<
任何有任何建议/意见的人?
答案 0 :(得分:0)
43px是导航栏的大小。你有吗?