gpt4 book ai didi

ios - 收到/未收到广告时调整 UITableView 高度

转载 作者:行者123 更新时间:2023-11-29 03:18:40 24 4
gpt4 key购买 nike

我使用 Admob 作为广告提供商。我有一个 UIViewController,它有一个 UITableView,它在 Storyboard 中设置为使用 Controller 的整个宽度和高度。

收到广告后会发生以下情况:

- (void)adViewDidReceiveAd:(GADBannerView *)Adview {

if (bannerView_.hidden) {
bannerView_.hidden = NO;
}

[UIView animateWithDuration:1.0 animations:^ {
// Final frame of ad should be docked to bottom of screen
Adview.frame = CGRectMake(0.0,
self.view.frame.size.height -
Adview.frame.size.height,
Adview.frame.size.width,
Adview.frame.size.height);
}];

这会更新 Adview 的框架并使其显示在屏幕底部,按预期工作。

我遇到的问题是 UITableView 框架。如果我以相同的方法更新框架,它似乎会再次更新,我相信从之前在 Storyboard 中的表格 View 上设置的约束来看。

更改 UITableView 的约束/框架的正确方法是什么,以便无论是否收到广告,相关更改都会应用。

接收 - -(void)adView:(GADBannerView *)Adview didFailToReceiveAdWithError:(GADRequestError *)error {
失败 - - (void)adViewDidReceiveAd:(GADBannerView *)Adview

最佳答案

更好的方法是在显示广告框架的情况下布置您的 View 。在 TableView 和 adView 之间有一个约束,然后在 adView 和底部布局指南之间有另一个约束。将导出设置为底部约束。

然后在您的代码中,不要调整框架,而是适本地设置底部约束的常量属性。将其设置为 0 以显示广告,将其设置为 -50(或您的广告知名度高度)以隐藏。

[UIView animateWithDuration:1 animations:^{
self.adViewConstraint.constant = 0;
self.adView.hidden = NO;
}
[self.view layoutIfNeeded];

现在您的 tableView 应该会随着 adView 的隐藏或显示自动调整大小。

关于ios - 收到/未收到广告时调整 UITableView 高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21386686/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com