Xcode 11 เพิ่มข้อ จำกัด ใหม่ตั้งศูนย์: ใช้ค่าชุดแทนค่าเริ่มต้น / มาตรฐาน


74

ฉันเคยใช้ autolayout เพิ่มข้อ จำกัด ใหม่เพื่อสร้างข้อ จำกัด ง่ายๆในการดู / กำกับดูแลมุมมองแบบสัมพัทธ์เช่นนี้ (สำหรับเวลา loooong):

ป้อนคำอธิบายรูปภาพที่นี่

อย่างไรก็ตามเมื่อเร็ว ๆ นี้หลังจากอัพเดทเป็น xcode ล่าสุด (11.3.3 หรือเพียง 11.3 / 11C29) ฉันมีปัญหาแปลก ๆ นี้: เมื่อฉันตั้งค่าคงที่ = 0 พวกเขามักจะสร้างข้อ จำกัด ในลักษณะที่ไม่พึงประสงค์เช่นนี้:

ป้อนคำอธิบายรูปภาพที่นี่

และดูเหมือนว่าค่าเริ่มต้นจะอยู่ที่ 20 และทำให้มุมมองของฉันดูผิดไป (0 เทียบกับ 20?)

หากฉันแก้ไขโดยแก้ไขข้อ จำกัด เช่นนี้:

ป้อนคำอธิบายรูปภาพที่นี่

จากนั้นจะแก้ไขอีกครั้ง (ภาพจะแก้ไขข้อ จำกัด ก่อนที่จะแก้ไขจะแสดงค่าคงที่ = Standard)

ฉันไม่รู้ด้วยซ้ำว่าจะอธิบายปัญหาได้อย่างไร แต่ฉันจะแก้ไขเรื่องนี้ใหม่add new constraintเพื่อใช้จุดประสงค์แทนมาตรฐาน / ค่าเริ่มต้นได้อย่างไร

ปรับปรุง:

ดูเหมือนว่าจะเกิดขึ้นเฉพาะเมื่อมีข้อ จำกัด ในการกำกับ ไม่มีเงื่อนงำวิธีแก้ไขโท

อัพเดท Apr-01-2020:

Xcode11.4 แก้ไขสิ่งนี้


2
ปัญหาเดียวกันที่นี่ ฉันคิดว่านี่เป็นครั้งแรกที่ฉันอัปเดตเป็น 11.3 UPD: โครงการเดียวกันไม่มีปัญหานี้ในเครื่องอื่นที่มี xcode เวอร์ชันเดียวกัน อาจเกี่ยวข้องกับการกำหนดค่า IDE หรืออาจเป็นข้อบกพร่องของ IDE เอง
Dmitrij Rogov

1
ปัญหาเดียวกันที่นี่ ใช้ Xcode 11.3 (11C29)
user525504

1
ปัญหาเดียวกันรุ่น 11.3 (11C29)
user832

1
@DmitrijRogov ฉันจำบางครั้งก่อน (xcode 8,9 หรือ 10) มีการตั้งค่าที่ช่วยให้เรากำหนดstandardค่า (เพื่อให้เราสามารถตั้งค่า 10 หรือ 0 แทนdefault = 8) แต่ฉันลืมที่ตอนนี้ หรือพวกเขาอาจจะลบคุณสมบัติ?
Eddie

5
นี่คือสิ่งที่ทำให้ฉันบ้าคลั่ง
Brian

คำตอบ:


37

ดูเหมือนว่าจะเป็นข้อผิดพลาด (อย่าลืมยื่นไฟล์ด้วย Apple) นี่เป็นวิธีแก้ปัญหาง่ายๆ:

เมื่อคุณกรอกตัวเลขใน "popover" แทนการพิมพ์ชนิด0 0.01วิธีนี้จะป้องกันไม่ให้หมายเลขเปลี่ยนไปเป็น "มาตรฐาน" อย่างลึกลับ ตกลง0.01ไม่เหมือนกัน0แต่ใกล้พอที่คุณจะไม่สามารถบอกความแตกต่างได้และอย่างน้อยคุณก็ไม่จำเป็นต้องย้อนกลับและเปลี่ยนแปลงในภายหลัง

EDIT Apple กล่าวว่าข้อผิดพลาดนี้จะได้รับการแก้ไขใน Xcode 11.4:

แก้ไขข้อผิดพลาดที่ป้องกันไม่ให้ป้อน 0 คงที่ในตัวแก้ไขป๊อปอัปข้อ จำกัด (54076090)


1
ขอบคุณมาก!
Eddie

1
ที่ดี! สิ่งที่น่ารำคาญในเรื่องนี้อาจเป็น ..
Joaquin Pereira

มันใช้งานได้ดีเมื่อฉันใช้ 0.01 แทน 0
Teja

แต่การตั้งค่าเป็น 0 ครั้งที่สองทำงาน ทำไมต้องกังวลกับ 0.01 มันค่อนข้างน่ารำคาญอยู่ดี สิ่งที่ดีมันเป็นข้อบกพร่องและไม่ใช่ "คุณสมบัติ"
Vlad Rusu

11

ในขณะที่การแก้ปัญหา @matt ทำงานได้ฉันเพียงต้องการเพิ่มว่าคุณสามารถตั้งค่าเป็น 0.01 แล้วเปลี่ยนเป็น 0 แต่จะไม่เปลี่ยนเป็นค่ามาตรฐานอีกครั้ง หมายเหตุ: Xcode 11.3


สำหรับฉันเมื่อฉันเปลี่ยนกลับเป็น 0 มันจะเปลี่ยนเป็น "มาตรฐาน" อีกครั้ง Xcode 11.3.1
John Scalo

10

จาก Xcode 11.3.1:

ทางออกที่เรียบร้อยและเร็วที่สุดที่ฉันพบมีดังนี้:

เพียงพิมพ์-0ลงในฟิลด์ข้อ จำกัด Xcode ดูเหมือนจะทิ้งสิ่งที่เป็นลบและมันทำงานอย่างถูกต้องซึ่งดีกว่าที่มันอ่าน0.01ทุกอย่าง

คุณสามารถแทรกข้อ จำกัด ทั้งหมดในครั้งเดียวโดยไม่ต้องทำทีละตัวหรือไปแก้ไขในภายหลัง

Xcode แสดงค่าตามนี้

มันดูเหมือนพฤติกรรมที่โง่เง่าจริงๆ มีเหตุผลที่ Apple อาจทำสิ่งนี้โดยเจตนาหรือไม่?

แก้ไข: ดูเหมือนว่าจะไม่ทำงานทุกครั้งซึ่งน่าหงุดหงิด ฉันเพิ่งได้ UIImageView แสดง 0 ถึง Superview แต่ยังคงเป็นค่าเริ่มต้น (20) สิ่งนี้ดูเหมือนจะเป็นจุดบกพร่องของ IB เพราะพฤติกรรมนั้นไร้เหตุผลทั้งหมด


9

พฤติกรรมนี้ดูเหมือนจะได้รับการแก้ไขใน Xcode 11.4: บันทึกย่อประจำรุ่น

แก้ไขข้อผิดพลาดที่ป้องกันไม่ให้ป้อน 0 คงที่ในตัวแก้ไขป๊อปอัปข้อ จำกัด (54076090)


คำตอบเดิม:

ฉันเพิ่งพบพฤติกรรมนี้เช่นกันฉันพยายามเพิ่มข้อ จำกัด 1 ต่อ 1 และ Xcode เคารพค่า 0 อย่างแท้จริง

สองเซ็นต์ของฉัน


ใช่ฉันเพิ่งสังเกตเห็นว่าในบันทึกย่อประจำรุ่นก็ทำได้ดีเช่นกัน
แมตต์

5

ฉันรู้ว่านี่ไม่ใช่วิธีแก้ปัญหา แต่สำหรับวิธีแก้ปัญหาชั่วคราวเพื่อป้องกันไม่ให้คุณผ่านข้อ จำกัด ทุกอย่างฉันเพิ่งค้นพบว่าคุณได้รับพฤติกรรมที่ต้องการหากคุณใส่ '-0' แทน '0' แต่คุณต้องแทรก จำกัด ในแต่ละครั้ง


นี่เป็นตัวเลือกที่ดีจริง ๆ การเพิ่ม '-0' เมื่อคุณสร้างข้อ จำกัด จะเป็น '0' ในตัวตรวจสอบไม่จำเป็นต้องไปที่นั่นและเปลี่ยนมัน
busta117

1

ที่จริงแล้วไม่มีวิธีการแก้ปัญหานี้ในเวลาเดียวกัน

แต่ทางออกชั่วคราวที่ดีที่สุดคือการเพิ่มข้อ จำกัด ด้วยศูนย์หนึ่งโดยหนึ่ง


0

ไม่สนใจว่าเมื่อมาตรฐาน

หลังจากเพิ่มให้คลิกที่ข้อ จำกัด (เส้นสีฟ้า) และผู้ตรวจสอบเพื่อ จำกัด คุณลักษณะและตั้งค่าเป็น 0

ที่ทำงานให้ฉัน


0

ยังคงประสบปัญหานี้อยู่ (Xcode 11.3.1) แก้ไขโดยเพียงเพิ่มข้อ จำกัด เป็น "มาตรฐาน" จากนั้นคลิกที่ข้อ จำกัด สีฟ้าและตั้งค่า "คงที่" ภายใต้ตัวตรวจสอบขนาดเป็น 0

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.