由于未捕获的异常“NSInvalidArgumentException”而终止应用程序未知的布局属性

发布于 2025-01-15 09:22:40 字数 2255 浏览 2 评论 0 原文

我正在尝试使用 NSLayoutConstraint 以编程方式为 Admob 原生广告组件提供垂直空间约束

我在 ListTileNativeAdFactory 类中分配了 nativeAdView。

(我使用了本指南:https://codelabs。 Developers.google.com/codelabs/admob-inline-ads-in-flutter#7

let nativeAdView = nibView as! GADNativeAdView 

事实上,我可以毫无问题地提供高度限制

这段代码工作没有问题:(它给nativeAdView.mediaView提供高度约束

   if let mediaView = nativeAdView.mediaView{
        NSLayoutConstraint(
            item: mediaView,
            attribute: NSLayoutConstraint.Attribute.height,
            relatedBy: NSLayoutConstraint.Relation.equal,
            toItem: nil,
            attribute: NSLayoutConstraint.Attribute.notAnAttribute,
            multiplier: 1,
            constant: 120).isActive = true
        }

另一方面,如果我尝试给垂直空间约束(顶部) 使用此代码:

   if let mediaView = nativeAdView.mediaView, let calltoActionView = nativeAdView.callToActionView{
            NSLayoutConstraint(
                item: mediaView,
                attribute: NSLayoutConstraint.Attribute.top,
                relatedBy: NSLayoutConstraint.Relation.equal,
                toItem: calltoActionView,
                attribute: NSLayoutConstraint.Attribute.notAnAttribute,
                multiplier: 1,
                constant: 15).isActive = true
            }

它给出 未知布局属性 错误。

*** 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“NSLayoutConstraint for” >: 未知布局属性' 以 NSException 类型的未捕获异常终止

我正在使用 Google 的官方 NativeAdView 文件。

github.com/ googleads/googleads-mobile-flutter/blob/master/packages/google_mobile_ads/example/ios/Runner/NativeAdView.xib

如何解决此问题 问题?

I am trying to give vertical space constraint programatically for Admob native ads compenents by using NSLayoutConstraint.

I assigned nativeAdView in the ListTileNativeAdFactory class.

(I used this guide : https://codelabs.developers.google.com/codelabs/admob-inline-ads-in-flutter#7)

let nativeAdView = nibView as! GADNativeAdView 

In fact I can give height constraint without a problem.

This code works without a problem:(It gives height constraint to nativeAdView.mediaView)

   if let mediaView = nativeAdView.mediaView{
        NSLayoutConstraint(
            item: mediaView,
            attribute: NSLayoutConstraint.Attribute.height,
            relatedBy: NSLayoutConstraint.Relation.equal,
            toItem: nil,
            attribute: NSLayoutConstraint.Attribute.notAnAttribute,
            multiplier: 1,
            constant: 120).isActive = true
        }

On the other hand, If I try to give vertical space constraint(top) with this code:

   if let mediaView = nativeAdView.mediaView, let calltoActionView = nativeAdView.callToActionView{
            NSLayoutConstraint(
                item: mediaView,
                attribute: NSLayoutConstraint.Attribute.top,
                relatedBy: NSLayoutConstraint.Relation.equal,
                toItem: calltoActionView,
                attribute: NSLayoutConstraint.Attribute.notAnAttribute,
                multiplier: 1,
                constant: 15).isActive = true
            }

It gives Unknown layout attribute error.

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'NSLayoutConstraint for
<GADMediaView: 0x11c0552e0; frame = (35 369.5; 250 150); autoresize =
RM+BM; layer = <CALayer: 0x2801e2f00>>: Unknown layout attribute'
terminating with uncaught exception of type NSException

I'm using Google's official NativeAdView file.

github.com/googleads/googleads-mobile-flutter/blob/master/packages/google_mobile_ads/example/ios/Runner/NativeAdView.xib

How can I solve this problem?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文