ฉันมีป้ายกำกับสองป้ายจัดเรียงตามแนวนอนใน TableViewCell ของฉัน ด้านขวาควรใช้พื้นที่เท่าที่ต้องการ ส่วนด้านซ้ายควรใช้พื้นที่ที่เหลือ ในกรณีที่ความยาวของป้ายทั้งสองยาวเกินความกว้างของเซลล์ ควรตัดป้ายด้านซ้ายให้เหลือพื้นที่แสดงได้เต็มที่ ป้ายกำกับจะจัดชิดด้านข้างหากสร้างความแตกต่าง
ตัวเลือก "จัดเรียง > เติมคอนเทนเนอร์ในแนวตั้ง" ใต้ตัวตรวจสอบขนาดคล้ายกับที่ฉันต้องการสำหรับป้ายกำกับด้านซ้าย แต่ฉันต้องการให้ใช้เฉพาะพื้นที่ที่ป้ายกำกับด้านขวาไม่ต้องการเท่านั้น
ถ้าฉันเพิ่มข้อจำกัดลงในช่องว่างต่อท้ายบนป้ายกำกับด้านซ้าย (ดูข้อจำกัดที่สามด้านล่าง) ผลลัพธ์ก็แทบจะเป็นสิ่งที่ฉันต้องการ แต่แทนที่จะให้ป้ายกำกับที่ถูกต้องได้รับพื้นที่ที่ต้องการ ป้ายกำกับด้านซ้ายจะใช้พื้นที่ที่ต้องการ (ดู ภาพสุดท้าย)
sizeToFit
เพื่อให้เนื้อหาของป้ายกำกับกลายเป็นความกว้างที่แท้จริง) จากนั้นคำนวณความกว้างในlayoutSubviews
และใช้ความกว้างนั้นเป็น (ลบ ) ค่าคงที่สำหรับจุดยึดความกว้างของป้ายกำกับด้านซ้าย ด้วยแนวทางแบบเป็นโปรแกรม คุณสามารถพิจารณากรณีขอบที่เกี่ยวข้องกับความกว้างของฉลากและการจัดตำแหน่งได้ดียิ่งขึ้น โดยพื้นฐานแล้วนี่คือสิ่งที่การบีบอัดและการกอด API ทำในเบื้องหลัง แต่ฉันชอบการควบคุมการดำเนินการด้วยตนเองมากกว่า เพราะจะไม่มีวันมีความประหลาดใจใดๆ - person liquid   schedule 05.04.2018