在我看来,我有一个表格和一个广告横幅,所有这些都是通过Interface Builder创建的。但我注意到我的view.frame.size.height似乎在我的应用程序执行过程中发生了变化,即使我没有改变大小。
有人可以向我解释为什么会这样吗?
我正在做的是在viewDidLoad屏幕上移动广告横幅,此时,如果我打印出self.view.frame.size.height,则值为:460.00。此时,我还增加了tableView的大小,以便占用adBanner曾经占用的空间并同时将adBanner移出屏幕。
然后,当我收到bannerViewDidLoadAd消息时,我再次打印出self.view.frame.size.height,此时它是367.00。我不明白为什么视图的大小已经改变。
- (void)moveAdvertOffScreen
{
// Make the table view take up the void left by the banner (320x50 block)
CGRect originalTableFrame = self.tableView.frame;
CGFloat newTableHeight = self.view.frame.size.height;
CGRect newTableFrame = originalTableFrame;
newTableFrame.size.height = newTableHeight;
// Position the banner below the table view (offscreen)
CGRect newBannerFrame = self.adBannerView.frame;
newBannerFrame.origin.y = newTableHeight;
self.tableView.frame = newTableFrame;
self.adBannerView.frame = newBannerFrame;
}
- (void)moveAdvertOnScreen
{
CGRect newBannerFrame = self.adBannerView.frame;
newBannerFrame.origin.y = self.view.frame.size.height - newBannerFrame.size.height;
CGRect originalTableFrame = self.tableView.frame;
CGFloat newTableHeight = self.view.frame.size.height - newBannerFrame.size.height;
CGRect newTableFrame = originalTableFrame;
newTableFrame.size.height = newTableHeight;
[UIView beginAnimations:@"BannerViewIntro" context:NULL];
self.tableView.frame = newTableFrame;
self.adBannerView.frame = newBannerFrame;
[UIView commitAnimations];
}
答案 0 :(得分:0)
您使用什么方法隐藏横幅广告。如果你没有使用removeFromSuperview:那么当你调整父视图的大小时,视图将会自动调整(这可能会自动发生以使视图适合屏幕等)。
我建议在Interface Builder中(在Inspector的“大小”选项卡上)查看视图的自动调整大小选项,直到找到可行的方法。