广告横幅阻止UITableView的底部

 陈应锋forever 发布于 2023-02-04 15:59

这是一个UI布局问题.我需要在iPhone应用中的所有视图底部放置横幅广告.横幅广告是共享的,只有在可用时才会加载.

两个UIViewControllers包含占据全屏的UITableViews.我有两个相关的问题,我不知道如何解决.加载横幅广告时,它会隐藏表格视图的底部,阻止用户选择最后几个单元格中的任何一个.此外,右侧索引不再居中并且低于它应该的位置.

显然,如果在广告未加载的情况下有空白空格,Apple会拒绝某个应用(如果我错了,请更正我),因此如果没有广告,则需要将全貌视图全长可用.

有人解决了这个问题吗?什么可能是克服这个问题的最佳做法?谢谢!

1 个回答
  • 我想通了,如何做到这一点的通常UITableViewController不使用自定义UIViewControllerUITableView内部.诀窍是动态调整横幅视图的位置,使其始终位于可见区域的底部.

    您只需将横幅视图添加为子视图并相应地调整表格插图:

    - (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;
    }
    

    2023-02-04 16:01 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有