我目前正在将UIViewController
与UIViewControllerRepresentable
集成到我的SwiftUI项目中,现在想更改UIViewController
的框架。为此,我使用了以下代码:
let vc = UIViewController()
vc.view.frame.size = CGSize(width: kGADAdSizeBanner.size.width, height: kGADAdSizeBanner.size.height)
但是,当我将UIViewControllerRepresentable创建的视图集成到VStack中的SwiftUI项目中时,UIViewController没有我想要的大小。Look at this
我的孔代码是:
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
}
kGADSizeBanner
是Google为广告提供的大小变量。
另外,我想知道为什么我的广告没有出现在灰色的UIViewController的中心。有人能帮忙吗?
目前为止我尝试的是:
vc.view.translatesAutoresizingMaskIntoConstraints = false
vc.view.frame = CGRect(origin: .zero, size: CGSize(width: kGADAdSizeBanner.size.width, height: kGADAdSizeBanner.size.height))
1条答案
按热度按时间slhcrj9b1#
在
UIViewControllerRepresentable
实现中覆盖sizeThatFits
。对于固定大小,只需返回所需的
CGSize
,但也可以尝试考虑proposal
。横幅不在视图控制器的中心,因为它位于(0,0),对于没有显式设置位置或添加任何约束的视图,这是一个典型的默认位置。