这是一个UI布局问题.我需要在iPhone应用中的所有视图底部放置横幅广告.横幅广告是共享的,只有在可用时才会加载.
两个UIViewControllers包含占据全屏的UITableViews.我有两个相关的问题,我不知道如何解决.加载横幅广告时,它会隐藏表格视图的底部,阻止用户选择最后几个单元格中的任何一个.此外,右侧索引不再居中并且低于它应该的位置.
显然,如果在广告未加载的情况下有空白空格,Apple会拒绝某个应用(如果我错了,请更正我),因此如果没有广告,则需要将全貌视图全长可用.
有人解决了这个问题吗?什么可能是克服这个问题的最佳做法?谢谢!
我想通了,如何做到这一点的通常UITableViewController
不使用自定义UIViewController
与UITableView
内部.诀窍是动态调整横幅视图的位置,使其始终位于可见区域的底部.
您只需将横幅视图添加为子视图并相应地调整表格插图:
- (void)viewDidLoad { [super viewDidLoad]; ... //init banner and set it's frame (here we use 320x50 banner) self.bannerView = [[UIView alloc] init]; self.bannerView.frame = CGRectMake(0, self.view.frame.size.height - 50, 320, 50); //add as subview [self.view addSubview:self.bannerView]; //set proper bottom inset depending on your banner height self.tableView.contentInset = UIEdgeInsetsMake(0, 0, 50, 0); }
滚动表格时,您需要根据内容偏移量调整横幅位置:
- (void)scrollViewDidScroll:(UIScrollView *)scrollView { //refresh banner frame during the scrolling CGRect bannerFrame = self.bannerView.frame; bannerFrame.origin.y = self.view.frame.size.height - 50 + self.tableView.contentOffset.y; self.bannerView.frame = bannerFrame; }