26
UIButton: วิธีจัดรูปภาพและข้อความให้อยู่กึ่งกลางโดยใช้ imageEdgeInsets และ titleEdgeInsets
หากฉันใส่เฉพาะภาพในปุ่มและตั้งค่า imageEdgeInsets ให้ใกล้เคียงกับด้านบนมากขึ้นภาพนั้นจะอยู่ตรงกลางและทำงานได้ตามที่คาดไว้: [button setImage:image forState:UIControlStateNormal]; [button setImageEdgeInsets:UIEdgeInsetsMake(-15.0, 0.0, 0.0, 0.0)]; ถ้าฉันใส่ข้อความเพียงปุ่มเดียวและตั้งค่า titleEdgeInsets ให้ใกล้กับด้านล่างมากขึ้นข้อความจะอยู่กึ่งกลางและทำงานตามที่คาดไว้: [button setTitle:title forState:UIControlStateNormal]; [button setTitleEdgeInsets:UIEdgeInsetsMake(0.0, 0.0, -30, 0.0)]; แต่ถ้าฉันใส่ทั้ง 4 บรรทัดเข้าด้วยกันข้อความจะรบกวนภาพและทั้งคู่ขาดการจัดตำแหน่งกึ่งกลาง รูปภาพของฉันทั้งหมดมีความกว้าง 30 พิกเซลและถ้าฉันใส่ 30 ในพารามิเตอร์ด้านซ้ายของ UIEdgeInsetMake สำหรับ setTitleEdgeInsets ข้อความจะอยู่กึ่งกลางอีกครั้ง ปัญหาคือภาพไม่เคยอยู่ตรงกลางเพราะปรากฏว่ามันขึ้นอยู่กับขนาดของ button.titleLabel ฉันได้ลองคำนวณหลายอย่างด้วยขนาดปุ่มขนาดภาพขนาดหัวเรื่องและไม่เคยอยู่ตรงกลางทั้งสองอย่างสมบูรณ์ มีคนปัญหาเดียวกันอยู่แล้วใช่ไหม
159
ios
objective-c
uibutton