我正在尝试使用AppDelegate单例将AdWhirl集成到我的iPhone应用程序中,因此我可以在多个视图中使用相同的AdWhirl实例,但无法弄清楚如何在这些视图中调整表的大小。我正在使用的代码是:
in ... AppDelegate.h:
#import "AdWhirlView.h"
#import "AdWhirlDelegateProtocol.h"
@interface ...AppDelegate : NSObject <UIApplicationDelegate, AdWhirlDelegate>
AdWhirlView *awView;
...
@property (nonatomic, retain) AdWhirlView *awView;
in ... AppDelegate.m didFinishLaunchingWithOptions:
awView = [AdWhirlView requestAdWhirlViewWithDelegate:self];
也在... AppDelegate.m我添加了必需的委托方法
(NSString *)adWhirlApplicationKey...
(UIViewController *)viewControllerForPresentingModalView...
此代码允许我在多个视图中显示相同的广告,但我无法弄清楚如何在显示广告时调整UITableView的大小以将其高度更改为更短,以便UITableView如果没有则显示全高广告,如果屏幕底部有广告,则会调整大小。我将UITableView作为UIViewController的子视图,名为myMainView。
我尝试更改Nib文件中的自动调整大小属性,以便UITableView在底部有一个变量spacer,并使用以下代码将AdWhirl实例添加到视图中:
...AppDelegate * myDelegate = (...AppDelegate *)[[UIApplication sharedApplication] delegate];
[myDelegate.awView setFrame:CGRectMake(0, 480-20-44-50, 320, 50)];
[self.myMainView addSubview: myDelegate.awView];
这会在屏幕底部的正确位置显示广告,但UITableView未调整大小。我该怎么做?
答案 0 :(得分:0)
我认为你必须使用嵌入式UITableView创建一个UIView。我试图做类似的事情,这是我能让它发挥作用的唯一方法。顶级UITableView会自动调整大小以占据整个屏幕。
只是扩展一下,你可能想要在标题中声明一些内容:
@interface ExampleClass:UIViewController {
UITableView *tableView;
}
@property (nonatomic,retain) IBOutlet UITableView *tableView;
然后在实际实现中,您可以在需要时通过执行以下操作来调整声明的tablview:
CGRect tableFrame = tableView.frame;
//Decrease the height of table by height of ad banner
tableFrame.size.height = tableView.frame.size.height - adBannerView.frame.size.height;
tableView.frame = tableFrame;