ฉันมีปัญหาเดียวกันและมาที่นี่เพื่อลองคิดดูว่าเกิดอะไรขึ้น ผมสังเกตเห็นด้านบนคำตอบการจัดอันดับและคำตอบตัวเองไม่ได้ช่วยให้ฉันเป็น IBDesignable ไม่ได้อยู่ในโฟลเดอร์บันทึกและฉันพยายามที่ตัวเลือกอื่น ๆ ทั้งหมดที่มี แต่ในความคิดเห็นผมสังเกตเห็นคนที่พูดคุยเกี่ยวกับ init กรอบ
ฉันตัดสินใจลองแสดงความคิดเห็นส่วนขยาย IBDesignable ของฉันสำหรับ UIView และแก้ไขปัญหาได้ทันที ดังนั้นในการแก้ไขปัญหานี้ให้ค้นหาส่วนขยายที่ทำให้เกิดปัญหาและตรวจสอบให้แน่ใจว่าได้ตั้งค่า inits ที่ต้องการโดยการสร้างคลาส IBDesignable และจัดเตรียมค่าเริ่มต้นที่จำเป็นดังนี้:
@IBDesignable class RoundedView: UIView {
override init(frame: CGRect) {
super.init(frame: frame)
sharedInit()
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
sharedInit()
}
override func prepareForInterfaceBuilder() {
super.prepareForInterfaceBuilder()
sharedInit()
}
func sharedInit() {
}
}
สำคัญ: อย่าลืมเพิ่มคลาสใหม่ให้กับรายการที่คุณใช้งานได้