在运行时调整iPhone上UIView的大小

在运行时调整iPhone上UIView的大小,iphone,uiview,runtime,resize,iad,Iphone,Uiview,Runtime,Resize,Iad,每当iAd从顶部向下滚动时,我都会尝试调整应用程序视图的大小。 问题是,在运行时,当我设置相关视图的调整大小的帧大小时,调整大小不会发生(因此iAd绘制在前50个垂直像素的顶部) 如果我在设计时设置UIView大小,那么我会看到视图已调整大小(当我运行应用程序时) 那么,我在运行时做错了什么,导致我无法调整大小呢 控制器NIB的结构如下所示: > > View > > View (associated with IB 'contentView') >

每当iAd从顶部向下滚动时,我都会尝试调整应用程序视图的大小。 问题是,在运行时,当我设置相关视图的调整大小的帧大小时,调整大小不会发生(因此iAd绘制在前50个垂直像素的顶部)

如果我在设计时设置UIView大小,那么我会看到视图已调整大小(当我运行应用程序时)

那么,我在运行时做错了什么,导致我无法调整大小呢

控制器NIB的结构如下所示:

> > View

>   > View (associated with IB 'contentView')

>     > CustomView (UIView)

>        - ScrollView

>        - Toolbar (top)

>        - Toolbar (bottom)
在代码中,adBannerView添加如下: [self.view addSubView:adBannerView]


conteView的origin.y和size.height是im更新的内容(使其y=50,height=original height-50)。这将缩小它的比例,以便有足够的空间在顶部显示横幅(50像素高)。

您确定视图不是零吗?你在Interface Builder中连接好了吗?如果您在视图上调用-setFrame,但什么也没有发生,则该视图可能无效。

我解决了我的问题,不过是通过一种变通方法解决的。 我认为问题在于我的视图布局树相当复杂。例如,我在自定义UIView中有一个scrollviewer。scrollviewer正在运行时添加UIView作为其内容。除此之外,我还试图调整各种视图的大小


但由于某些原因,视图从未实现底部对齐(始终为顶部对齐)。

我所做的一件事是在设计时通过interface builder设置视图框架的origin.y和size.height。有趣的是,当我这样做时,界面生成器看起来并不像我期望的那样,但当我运行模拟器时,它确实是这样。简而言之,问题在于在运行时更新任何UIView的原点和大小,以便为iAd腾出空间(这样iAd就不会与其他视图重叠)。iAd横幅(我认为它本身就是一个UIViw)出现在我预期的位置(顶部)。仅供参考,我将此用作参考:www.raywenderlich.com/1371/how-to-integrate-iad-into-your-iphone-app然而,我永远不能太确定。我当然希望我的问题是没有正确连接视图。我需要什么来确保我的视图有效?是否在Interface Builder中将视图控制器的文件所有者的连接拖动到相关视图?此外,您可以在调试器中设置断点,并确保在查看控制器加载时视图不是0x0(nil)。我确实拖动了它(如我在原始帖子中绘制的IB图所述)。我有一种感觉,这不是零,而是因为我有相当复杂的布局(可能?)。基本上,我在视图中有一个视图(内部视图与UIView相关联,UIView存在于代码中,严格用于显示墙纸图像)。我这样做的原因是,我可以在墙纸上使用滚动查看器(这样墙纸就不会滚动)。为了让事情变得更疯狂,在代码中,我添加了另一个视图(画布),这是我的绘图区域。它被添加到scrollviewer中。@Matt。仅供参考,关于您最后的评论,我通过对象所有者窗口(而不是GUI设计器窗口)从文件所有者拖动到相关视图。也许我应该尝试在designer窗口中与实际的GUI视图建立文件所有者连接?