我想将 ADBannerView 对象静态放置到我的 UITableView 屏幕上,这意味着我希望它始终位于我的工具栏 (self.navigationController.toolbar) 上方,即使用户滚动 tableview 时也是如此。我通过将 ADBannerView 添加为工具栏的子视图并为框架原点赋予负值来解决此问题:
[self setBannerViewSize];
[self.navigationController.toolbar addSubview:bannerView];
唯一的问题是:我无法通过这种方式点击并打开 iAd - 我可以看到横幅,但点击它时没有任何反应。
由于我也使用刷新控件,因此使用 UIViewController 而不是 UITableViewController 并手动添加 tableView 的选项对我来说不起作用。有没有其他方法可以让我的 ADBannerView 静态显示在我的表视图控制器中并且仍然可点击?
谢谢您的建议!
耶!!毕竟我自己成功解决了这个(非常烦人的)问题(并且进行了大量阅读)!
首先,我发现这确实是改变世界的岗位 http://www.herrray.com/uitableviewcontroller-and-fixed-sub-views/。基本上这篇文章处理的主题是 UITableViewController 使用 self.view 作为其 tableView 属性,因此重写 tableView 属性(或手动合成它)加上给 self.view 一个新视图(来自应用程序)并添加 tableView 作为其子视图将使有可能达到realtableView 的超级视图。
但这仍然没有解决我的问题,尽管我确信它会解决,因为这一切都是有道理的。我的bannerView出现在正确的位置(并且已修复),但单击时它仍然没有执行任何操作。但还有第二件小事我不知道:
当我读到这个帖子 http://iphonedevsdk.com/forum/iphone-sdk-development/75193-iad-click-not-working.html子视图的父视图不仅必须是 userInteractionEnabled,而且还必须具有不透明的背景颜色。因为我的超级视图背景颜色设置为 [UIColor clearColor] 这一切都不起作用 - 但将其 backGroundColor 设置为例如blackColor 解决了整个问题:bannerView 终于可以点击了! :)
所以,我的代码现在看起来像这样:
@synthesize tableView;
- (void)viewDidLoad
{
[super viewDidLoad];
if (!tableView && [self.view isKindOfClass:[UITableView class]]) {
tableView = (UITableView *)self.view;
}
self.view = [[UIView alloc] initWithFrame:[UIScreen mainScreen].applicationFrame];
self.tableView.frame = self.view.bounds;
[self.view addSubview:self.tableView];
[self resizeTableToFitBanner];
self.view.backgroundColor = [UIColor whiteColor];
[self.view addSubview:bannerView];
// some other code
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)