簡體   English   中英

8.0之前的iOS版本上的屬性不可用警告

[英]Attribute Unavailable warning on iOS versions prior to 8.0

在界面構建器中導致此警告的原因是什么?

屬性不可用布局屬性相對於8.0之前的iOS版本的布局邊距。

我正在使用XCode 6 Beta。 警告指向xml源中與屬性無關的行。

由於我已經創建了約束,答案是單擊約束,然后查看Utilities欄(右側)。 如下圖所示,單擊某個項目,然后確保未選中“相對於邊距”。

相對於保證金截圖

在Xcode 6中添加約束時,您可以選擇“約束到邊距”,它會創建不同的約束並且無法讀取,例如,在Xcode 5中。創建沒有此選項的約束,警告應該消失。 此約束將在iOS 8上提供。

在此輸入圖像描述

如果您已經創建了約束,我們可以更改它,單擊約束並進行編輯。 選擇第二項時,可以取消選中“相對於保證金”選項(如GLee答案中所述)。

如果找不到警告的來源,可以使用此grep查找。

在項目目錄的Terminal中運行它:

grep -C 6 -nr Margin .

6表示在比賽前后顯示的上下文線數。

根據Gasper Kolenc打開故事板作為源代碼是非常有用的。 以下是我解決此問題的經驗中的更多信息:

  1. 在故事板源代碼中搜索“margin”。你會看到這樣的一行。

    約束firstAttribute =“trailingMargin”secondItem =“Pgb-8w-IHT”secondAttribute =“trailing”constant =“8”id =“nKP-uZ-7Xm”/

  2. 找到其中一個屬性的ID(上例中的Pgb-8w-IHT)。

  3. 向上滾動以查找此約束所屬的對象。 就像是:

    tableViewCell contentMode =“scaleToFill”selectionStyle =“default”

  4. 切換回故事板視圖並顯示身份檢查器窗口。

  5. 搜索您在上面找到的對象的子視圖,以在身份檢查器上查找ID(Pgb-8w-IHT)。

  6. 一旦找到,就檢查約束以找到需要刪除和重新創建的約束,而不選擇約束邊距選項(使用constant =“”作為提示“)。

在我的情況下,我不得不從文件檢查器中的故事板中取消選中“使用自動布局”,並重做我的應用程序中的所有約束,舊的方式是縮小/放大紅色矩形。

大小類已被禁用,目標是IOS 7.1。

但是如果你有太多的View Controllers,並且已經完成了所有約束,請好好想想。 禁用自動布局時,Xcode會清除所有自動約束並恢復為舊模型。 然后你必須再做一切工作。

這是我擺脫屬性不可用警告的唯一方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM