You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SwiftUI中修改UIViewController框架及广告居中问题求助

SwiftUI集成UIViewControllerRepresentable时的尺寸与广告居中问题

我在SwiftUI项目中通过UIViewControllerRepresentable集成UIViewController,想要修改该UIViewController的框架,使用了以下代码:

let vc = UIViewController()
vc.view.frame.size = CGSize(width: kGADAdSizeBanner.size.width, height: kGADAdSizeBanner.size.height)

但将这个由UIViewControllerRepresentable创建的视图集成到包含列表的VStack中时,UIViewController并未呈现预期尺寸。

我的完整代码如下:

func makeUIViewController(context: Context) -> UIViewController {
    let vc = UIViewController()
    vc.view.frame.size = CGSize(width: kGADAdSizeBanner.size.width, height: kGADAdSizeBanner.size.height)
    vc.view.backgroundColor = .gray
    vc.view.alpha = 0
    
    let bannerView = GADBannerView(adSize: kGADAdSizeBanner)
    bannerView.adUnitID = "ca-app-pub-3940256099942544/2934735716"
    bannerView.alpha = 0
    bannerView.rootViewController = vc
    bannerView.delegate = context.coordinator
    bannerView.load(GADRequest())

    vc.view.addSubview(bannerView)
    
    return vc
}

其中kGADAdSizeBanner是谷歌提供的广告尺寸变量。此外,广告并未显示在灰色UIViewController的中央,恳请帮忙解决这两个问题。

我已尝试过以下方法:

  • vc.view.translatesAutoresizingMaskIntoConstraints = false
  • vc.view.frame = CGRect(origin: .zero, size: CGSize(width: kGADAdSizeBanner.size.width, height: kGADAdSizeBanner.size.height))

内容的提问来源于stack exchange,提问作者SwiftUICodingGermany

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 21:37:25