อะไรทำให้เกิดคำเตือนนี้ในตัวสร้างอินเทอร์เฟซ
แอตทริบิวต์ Unavailable Layout สัมพันธ์กับระยะขอบของเลย์เอาต์บน iOS เวอร์ชันก่อน 8.0
ฉันใช้ XCode 6 เบต้า คำเตือนชี้ไปที่บรรทัดในแหล่ง xml ที่ไม่เกี่ยวข้องกับแอตทริบิวต์
อะไรทำให้เกิดคำเตือนนี้ในตัวสร้างอินเทอร์เฟซ
แอตทริบิวต์ Unavailable Layout สัมพันธ์กับระยะขอบของเลย์เอาต์บน iOS เวอร์ชันก่อน 8.0
ฉันใช้ XCode 6 เบต้า คำเตือนชี้ไปที่บรรทัดในแหล่ง xml ที่ไม่เกี่ยวข้องกับแอตทริบิวต์
เนื่องจากฉันได้สร้างข้อจำกัดแล้ว คำตอบคือการคลิกที่ข้อจำกัด แล้วดูในแถบ Utilities (ทางด้านขวา) ดังที่แสดงในภาพด้านล่าง คลิกที่รายการ จากนั้นตรวจสอบให้แน่ใจว่าไม่ได้ทำเครื่องหมายที่ "สัมพันธ์กับระยะขอบ"
เมื่อคุณเพิ่มข้อจำกัดใน Xcode 6 คุณจะมีตัวเลือก "จำกัดที่ระยะขอบ" ซึ่งสร้างข้อจำกัดอื่นและไม่สามารถอ่านได้ เช่น ใน Xcode 5 สร้างข้อจำกัดโดยไม่มีตัวเลือกนี้ และคำเตือนจะหายไป ข้อจำกัดนี้จะพร้อมใช้งานบน iOS 8
หากคุณได้สร้างข้อจำกัดแล้ว เราสามารถเปลี่ยนได้โดยคลิกที่ข้อจำกัดแล้วแก้ไข เมื่อเลือกรายการที่สอง คุณสามารถยกเลิกการเลือกตัวเลือก "สัมพันธ์กับระยะขอบ" ได้ (ตามที่อธิบายไว้ในคำตอบของ GLee
หากคุณไม่พบคำเตือนที่มาจากที่ใด คุณสามารถใช้ grep นี้เพื่อค้นหาได้
รันสิ่งนี้ใน Terminal ในไดเรกทอรีโครงการของคุณ:
grep -C 6 -nr Margin .
เลข 6 บอกว่าจะแสดงบริบทกี่บรรทัดก่อนและหลังการแข่งขัน
ตาม Gasper Kolenc การเปิดกระดานเรื่องราวเป็นซอร์สโค้ดมีประโยชน์มาก นี่เป็นข้อมูลเพิ่มเติมเล็กน้อยจากประสบการณ์ของฉันในการแก้ไขปัญหานี้:
ในซอร์สโค้ดกระดานเรื่องราว ให้ค้นหา "margin" คุณจะเห็นบรรทัดเช่นนี้
ข้อ จำกัด firstAttribute = "trailingMargin" SecondItem = "Pgb-8w-IHT" SecondAttribute = "trailing" คงที่ = "8" id = "nKP-uZ-7Xm"/
ค้นหารหัสของแอตทริบิวต์อย่างใดอย่างหนึ่ง (Pgb-8w-IHT ในตัวอย่างด้านบน)
เลื่อนขึ้นเพื่อดูว่าข้อจำกัดนี้อยู่ในวัตถุใด สิ่งที่ต้องการ:
tableViewCell contentMode = "scaleToFill" SelectionStyle = "ค่าเริ่มต้น"
สลับกลับไปยังมุมมองกระดานเรื่องราวและแสดงหน้าต่างตัวตรวจสอบข้อมูลประจำตัว
ค้นหาผ่านมุมมองย่อยของออบเจ็กต์ที่คุณพบด้านบนเพื่อค้นหารหัส (Pgb-8w-IHT) บนตัวตรวจสอบข้อมูลประจำตัว
เมื่อพบแล้ว ให้ตรวจสอบข้อจำกัดเพื่อค้นหาข้อจำกัดที่ต้องลบและสร้างใหม่โดยไม่มีตัวเลือกจำกัดระยะขอบที่เลือกไว้ (ใช้ค่าคงที่ = " " เป็นคำใบ้"
ในกรณีของฉัน ฉันต้องยกเลิกการเลือก "ใช้เลย์เอาต์อัตโนมัติ" จากกระดานเรื่องราวของฉันใน File Inspector และทำซ้ำข้อจำกัดทั้งหมดในแอปของฉัน วิธีแบบเก่าด้วยการย่อ/ขยายสี่เหลี่ยมสีแดงนั้น
คลาสขนาดถูกปิดใช้งานแล้วและเป้าหมายคือ IOS 7.1
แต่คิดให้ดีถ้าคุณมี View Controllers มากเกินไป และได้ทำข้อจำกัดทั้งหมดแล้ว เมื่อคุณปิดการใช้งานรูปแบบอัตโนมัติ Xcode จะล้างข้อจำกัดอัตโนมัติทั้งหมดและเปลี่ยนกลับเป็นรุ่นเก่า จากนั้นคุณจะต้องทำงานทั้งหมดอีกครั้ง
นี่เป็นวิธีเดียวที่ฉันกำจัดคำเตือน Attribute Unavailable นั้นได้