Xcode 9 - "ข้อ จำกัด ความกว้างคงที่อาจทำให้การตัด" และคำเตือนการแปลภาษาท้องถิ่นอื่น ๆ


148

ฉันดาวน์โหลด Xcode ใหม่และในเครื่องมือสร้างอินเทอร์เฟซฉันมีปัญหามากมายเกี่ยวกับคำเตือนที่พูดถึงสิ่งต่าง ๆ เช่น:

ข้อ จำกัด ความกว้างคงที่อาจทำให้เกิดการตัด

ดูเหมือนว่านี้:

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

ฉันมีการแปลหลายภาษาและฉันเข้าใจคำเตือนว่าในภาษาอื่นขนาดของป้ายกำกับอาจมีการเปลี่ยนแปลง แต่แอปของฉันไม่มีปัญหานี้ ฉันวิ่งและทดสอบใน Xcode 8 เมื่อวานมันก็ดี ฉันไม่ต้องการที่จะใช้จ่ายชั่วโมงและชั่วโมงเพิ่มข้อ จำกัด ใหม่ไม่มีจุดหมาย

มีคำแนะนำใดบ้าง?


ฉันแนะนำให้คุณมองหาการปรับขนาดอัตโนมัติ
Dark Innocence

3
กันที่นี่ มีปุ่มที่รับประกันว่ามีความกว้าง 50pt ในทุกภาษา เพราะเหตุใดฉันจึงใช้การ์ดรายงานการชำระอัตโนมัติอัตโนมัติที่สะอาดเป็นพิเศษ
John Scalo

9
นี่เป็นปัญหาใหญ่และน่าแปลกใจที่ไม่มีใครพูดถึงมันอีกแล้ว: O
Fattie

2
ฉันได้รับข้อผิดพลาดนี้แม้จะมีการแปลเป็นภาษาอังกฤษเท่านั้น
Shades

6
สำหรับคนอื่น ๆ หากคุณไม่มีการแปลใด ๆ และเพียงต้องการให้คำเตือนเหล่านี้หายไปให้ย้ายกระดานเรื่องราวของคุณออกจากโฟลเดอร์ Base.iproj ตามที่ระบุไว้ที่นี่: stackoverflow.com/a/45040394/1807644
William T.

คำตอบ:


179

ฉันได้รับคำเตือนแบบเดียวกันแม้ไม่มีหลายภาษาในแอปซึ่งทำให้ฉันรู้ว่าเกิดอะไรขึ้นจริง ๆ . .

มีสิ่งต่าง ๆ เกิดขึ้นที่นี่ ฉันสามารถปิดเสียงการเตือนความกว้างคงที่ในแอพของฉันเองโดยเปลี่ยนความกว้างของการเว้นระยะวัตถุจากความกว้างคงที่ไปเป็นมากกว่าหรือเท่ากับหรือน้อยกว่าหรือเท่ากับน้อยกว่าหรือเท่ากับ

สิ่งนี้สามารถทำได้โดยการเลือกวัตถุในตัวสร้างอินเตอร์เฟสไปที่ตัวตรวจสอบขนาดและเปลี่ยนมันที่นั่น:

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


หรือเลือกข้อ จำกัด จากเค้าร่างเอกสารไปที่ขนาดของผู้ตรวจสอบและเปลี่ยนเป็น:

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



เท่าที่มีคำเตือนที่ด้านบนของภาพหน้าจอของคุณ:

แก้ไขข้อ จำกัด การนำหน้าและต่อท้ายด้วยข้อ จำกัด กึ่งกลางอาจทำให้เกิดการคลิป

นี่คือภาพหน้าจอจากแอพของฉันซึ่งฉันได้รับคำเตือนเหมือนกันทุกประการ:

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

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

หลังจากนั้นฉันก็ลาออกจากตำแหน่งเพื่อดู Stack Viewโอบกอดกองดูน่ารำคาญเท่าที่ควรจะใช้เมื่อคุณได้รับข้อ จำกัด และการตั้งค่าทั้งหมดถูกต้องมันจะออกมาอย่างสวยงามและไม่มีคำเตือน


แก้ไข

ในฐานะที่เป็นReposeเขียนในความคิดเห็นที่บางครั้งก็เพิ่ม> = 0 จะเป็นสิ่งที่คุณต้องการในขณะที่คุณกำลังทำให้แน่ใจว่าสององค์ประกอบที่ไม่ทับซ้อน


2
> = 0 ป้องกันการซ้อนทับและแก้ไขปัญหาการซ้อนทับที่ฉันเคยทำก่อนหน้าการแปลง Leading / Trailing เป็น Right / Left แก้ไขข้อผิดพลาดของการคลิปสำหรับฉัน ผลลัพธ์อาจแตกต่างกันไป โปรดปรึกษาแพทย์ของคุณก่อนที่จะเริ่มการพัฒนาซอฟต์แวร์ใด ๆ
พักผ่อน

@ ตอบกลับอย่างแน่นอน คิดเกี่ยวกับสิ่งที่อาจผิดพลาดและเพิ่มข้อ จำกัด เพื่อให้แน่ใจว่าไม่มี
Shades

ลาออกไปใช้ Stack View ใน iOS อาจจะโอเค แต่สำหรับ OS X (ขออภัย MacOS) ไม่ใช่ตัวเลือกที่ดีเสมอไป แอปเปิ้ลควรรู้เอาไว้ แนวคิดของ UI และ UX มักจะมีสมมติฐานที่แตกต่างกัน
Joannes

2
ฉันเห็นด้วยกับการกอด UIStackView มันเป็นความเจ็บปวดแน่นอนและฉันพยายามทำด้วยข้อ จำกัด สองสามข้อฉันเพิ่ม UIStackView อีกอันและมันสมบูรณ์แบบ
templeman15

1
มีตัวเลือกอื่น ๆ - ถ้าฉันต้องการการควบคุมของฉันเป็นความกว้างคงที่?
Kampai

60

คุณสามารถลองปิดการใช้งาน "การเคารพภาษาทาง" ตามข้อ จำกัด พื้นฐานเพื่อปิดเสียงเตือนและดูว่าช่วยได้หรือไม่ เลือกข้อ จำกัด ของคุณและเปิดตัวตรวจสอบคุณสมบัติ / ขนาด โปรดดูภาพที่แนบมา

หากคุณไม่ได้วางแผนที่จะแปลแอพของคุณเป็นภาษาอื่น ๆ โซลูชันนี้ไม่ควรมีข้อผิดพลาดใด ๆ สำหรับแอปที่แปลเป็นภาษาท้องถิ่นคุณต้องคำนึงถึงขนาดป้ายกำกับและขนาดตัวอักษรของคุณมากขึ้น

ps วิธีนี้ใช้ได้กับ iOS สำหรับ macOS ลอง> = หรือ <= เพื่อปิดเสียงเตือน

pps Labels ในภาพด้านล่างนั้นง่ายต่อการสร้างโดยใช้ AutoLayout และทรัพย์สินที่เป็นส่วนหนึ่งบน UILabel หรือ UITextView เดียวโดยใช้ NSMutableAttributedString รูปภาพใช้สำหรับการสาธิตเท่านั้น

ไม่เคารพทิศทางภาษา


1
แก้ไข "ข้อ จำกัด การแก้ไขปัญหาการนำหน้าและการต่อท้ายที่มีข้อ จำกัด กึ่งกลางอาจทำให้เกิดการคลิป" สำหรับฉัน ขอบคุณ!
toddg

4
หากคุณลองทำสิ่งนี้แล้วดูเหมือนว่าจะไม่มีผลใด ๆ ให้ลองเลิกใช้ Xcode แล้วเริ่มต้นใหม่ เคล็ดลับนั้นใช้ได้กับฉัน
T'Pol

2
มันจะไม่ให้ฉันยกเลิกการเลือกนี้
สกูตเตอร์

1
ที่สมบูรณ์แบบ! สิ่งนี้ใช้ได้กับฉันและไม่จำเป็นต้องเปลี่ยนข้อ จำกัด ของฉันขอบคุณ!
rgkobashi

1
> = ข้อ จำกัด มีผลกระทบที่ไม่ดีสำหรับฉันเนื่องจากแผนการจัดลำดับความสำคัญที่ซับซ้อนต่าง ๆ ฉันได้เตรียมที่จะแทรกป้ายกำกับของฉันลงในมุมมองแล้วพบวิธีแก้ปัญหาของคุณ! ขอบคุณ :)
KerCodex

33

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

Xcode ช่วยให้คุณเพิ่มข้อ จำกัด เหล่านี้โดยอัตโนมัติ:

ในโครงร่างเอกสารของกระดานเรื่องราวของคุณให้คลิกที่ลูกศรสีเหลืองและเลือก "นำหน้าคงที่" หรือ "ต่อท้ายคงที่" ทั้งนี้ขึ้นอยู่กับตำแหน่งที่ข้อความอยู่บนหน้าจอ (ซ้ายหรือขวา) สิ่งนี้จะแก้ไขได้สำหรับปัญหาส่วนใหญ่

ภาพหน้าจอ Xcode

หากคุณมีปัญหากับปุ่มที่ไม่มีข้อความใด ๆ (เฉพาะภาพ) ให้ลองลบ "ชื่อเริ่มต้น" ซึ่งอาจยังคงถูกตั้งค่าสำหรับปุ่ม:

ภาพหน้าจอ Xcode


4
ในกรณีของฉันการลบชื่อเริ่มต้นจะเป็นการลบคำเตือน ขอบคุณ!
Reinhard Männer

รับทราบว่าเมื่อคุณเพิ่มUIButtonไปStoryboardที่ชื่อจะเป็นdefault button button
Miguel Tepale

29

ด้วยLabelsคุณสามารถตั้งค่าLinesเป็น0และAutoshrinkคุณสมบัติเป็นMinimum Font Sizeที่จะลบFixed Width Constraints May Cause Clippingคำเตือนเช่นนี้

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


3
ใช่คุณต้องตั้งค่าบรรทัดเป็น 0
Reefwing

2
บรรทัดการตั้งค่าเป็น 0 ทำให้ป้ายชื่อขยายเป็นหลายบรรทัดตามต้องการซึ่งอาจไม่ใช่สิ่งที่คุณต้องการ
nickdnk

@nickdnk: ฉันรู้ว่าถ้าคุณแก้ไขข้อจำกัดความสูงของป้ายชื่อมันจะไม่ขยาย
Lionking

21

อีกทางออกที่รวดเร็ว!

สำหรับ UIButton โดยการเปลี่ยนชื่อจากข้อความธรรมดาเป็นข้อความที่ระบุยังแก้ไขปัญหาของฉัน: -

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


ทำงานเหมือนจับใจ!
งานฝีมือ

7

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


4

Swift 4, Xcode 9.1:

เกี่ยวกับปัญหานี้ฉันคิดว่าวัตถุของคุณไม่ทราบว่าเป็นตำแหน่งศูนย์ที่ถูกต้องในบริบทของการดูแลและใช้การลบมากกว่าหรือการตั้งค่าการนำทาง / การปฏิบัติอื่น ๆ ส่วนใหญ่ทำงานไม่ถูกต้อง ก่อนอื่นคุณต้องตรวจสอบข้อ จำกัด ที่ถูกต้องของหัวหน้างานของคุณ

หากการกำกับดูแลของคุณถูกกำหนดอย่างถูกต้องคุณสามารถลอง "อธิบาย" กับวัตถุของคุณตำแหน่งที่ถูกต้องในมุมมองได้โดยการตั้งค่าข้อ จำกัด"แนวนอนในคอนเทนเนอร์" :

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


2

หากคุณต้องการจำกัดความกว้างคงที่สำหรับปุ่มเพียงตั้งค่าลำดับความสำคัญของความกว้าง จำกัด700ไว้ที่


1

ฉันมีปัญหาเดียวกัน แต่เมื่อฉันเปลี่ยน>=เป็นตั้งค่าคงที่โดยอัตโนมัติ0หากฉันเลือก60เช่นคำเตือนจะปรากฏขึ้นอีกครั้ง ดังนั้นฉันจึงวนซ้ำกับปัญหา

ฉันสามารถแก้ไขการฝังLabelในView

Editor > Embed In > View

ในLabelฉันชุดTop, Bottom, LeadingและTrailingกับconstant = 0

ข้อ จำกัด

ในViewชุดconstraintsที่ฉันคาดหวังมาก่อน


1

ฉันมีปัญหาเดียวกันเมื่อย้ายไปที่ Xcode 9 และพบวิธีการที่มีประโยชน์สำหรับเค้าโครงบางประเภท ในกรณีของฉันฉันต้องการส่วนหัวของตารางที่สองคอลัมน์ (UILabels) มีความกว้างคงที่และอีกคอลัมน์หนึ่งเป็นความกว้างของตัวแปร ไม่ว่าฉันจะระบุความกว้างของคอลัมน์อย่างไร (รวมถึงการใช้ข้อ จำกัด ที่มากกว่าหรือเท่ากับแทนที่จะเท่ากันเป็นต้น) ฉันได้รับคำเตือนเกี่ยวกับการตัดที่เป็นไปได้ ในกรณีของฉันฉันต้องการคอลัมน์ความกว้างแปรผัน (UILabel) เพื่อคลิปหากจำเป็น ฉันอาจเพิกเฉยต่อคำเตือน แต่ไม่ชอบทำสิ่งนั้น

วิธีการทำงานที่นี่คือการสร้าง UIView ด้วยข้อ จำกัด ด้านขนาดที่เหมาะสมและฝัง UILabel เป็นมุมมองย่อยใน UIView จากนั้นการตัดจะเกิดขึ้นถ้าจำเป็นและฉันไม่ได้รับการเตือนใด ๆ สิ่งนี้ทำงานได้หรือไม่ว่า UIView / UILabel ที่ฝังอยู่ใน StackView หรือไม่

นี่เป็นวิธีการเดียวกับ Haroldo Gondim แต่ที่นี่คุณสามารถเห็นได้ว่าสามารถใช้งานได้หรือไม่ใช้ StackView

ภาพต่อไปนี้แสดงให้เห็นถึงวิธีการที่มีและไม่มี StackView "SpacerName" คือความกว้างของตัวแปร UIView ที่มีป้ายกำกับและ "SpacerPD" เป็นรายการเดียวที่มีความกว้างคงที่ 80 [สีไม่สำคัญ; แค่ไปที่นั่นเพื่อแสดงว่ามุมมองเป็นอย่างไร]

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


0

ดังที่คุณเห็นในภาพด้านล่างฉันมีข้อผิดพลาด"ข้อ จำกัด คงที่ความกว้างอาจทำให้เกิดการตัด"เนื่องจากแม้ว่าฉันได้ตั้งกล่องข้อความของฉันให้อยู่กึ่งกลางแนวตั้งและฉลากของฉันมีข้อ จำกัด ระยะขอบซ้ายฉันไม่ได้กำหนดข้อ จำกัด สำหรับกล่องข้อความที่เกี่ยวข้องกับฉลากดังนั้น XCode จึงแจ้งเตือนฉันว่ากล่องข้อความสามารถคลิป (แสดงผลด้านบน) ฉลาก

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

หลังจากเพิ่มข้อ จำกัด ด้านซ้ายลงในกล่องข้อความเพื่อให้อยู่ห่างจากป้ายกำกับเสมอข้อผิดพลาดได้รับการพิจารณาแก้ไขโดย XCode และมันไม่ได้รบกวนฉันด้วยคำเตือนข้อ จำกัด อีกต่อไป


0

ฉันมีปัญหาที่คล้ายกันเมื่อพยายามมีปุ่มที่มีช่องว่างภายในเดียวกันจากขอบของมุมมองระดับสูง

กรณีข้อผิดพลาด

ฉันได้สิ้นสุดการใช้horizontal centerข้อ จำกัด และequal widthsข้อ จำกัด super viewไป

ทางออกของฉัน


-1

ในการแก้ไขข้อผิดพลาด : ข้อ จำกัด ความกว้างคงที่อาจทำให้การตัด "และการแปลอื่น ๆ คุณต้องเลือกมุมมอง / วัตถุไปที่" แสดงเครื่องมือตรวจสอบขนาด "ค้นหาข้อจำกัดความกว้างและกำหนดค่าคงที่เป็นมหานครหรือเท่ากับ:

สารวัตรขนาด

ในการแก้ไขข้อผิดพลาด : ข้อ จำกัด ที่นำหน้า / ต่อท้ายหายไปซึ่งอาจทำให้เกิดการทับซ้อนกับมุมมองอื่น

ซึ่งหมายความว่า Xcode มุมมอง / วัตถุกำลังบ่นไม่มีข้อ จำกัด การนำหน้าหรือต่อท้ายไปยังมุมมองใกล้เคียง

ในขณะที่กดปุ่มควบคุมค้างไว้ให้ลากไปที่มุมมอง / วัตถุใกล้

Contrl + กดคลิก

เพิ่มข้อ จำกัด ชั้นนำหรือต่อท้าย

ข้อ จำกัด ชั้นนำ / ต่อท้าย


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