代码之家  ›  专栏  ›  技术社区  ›  Altealice

AddSubView修改添加视图的框架

  •  5
  • Altealice  · 技术社区  · 14 年前

    我不知道该怎么问这个问题,但这里…

    我正在将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:应该显示或消失:] 搞砸了。我实现了一个空 -viewDidMoveToWindow:(UIWindow *)shouldAppearOrDisappear:(BOOL)flag 方法在pdfviewController中,bug消失了。但这看起来并不是修复,而是可能导致应用被拒绝。& &;

    有人有什么建议/意见吗?

    1 回复  |  直到 14 年前
        1
  •  0
  •   RolandasR    14 年前