IBDesignable
ile Arabirim Oluşturucusu'nda düzgün bir şekilde oluşturmak için UITextField
alt sınıfını almaya çalışırken sorunlarım var. Alt sınıf oldukça basittir, kullanıcının UITextField
numaralı telefondaki metin yerleşimi için insets tanımlamasını sağlar. kod aşağıdaki gibidir: film şeridindeki bu sınıfı kullanırken Arabirim Oluşturucu'da özel UITextField alt sınıfını oluşturmayla ilgili hatalar
import Foundation
@IBDesignable public class CLYInsetTextField: UITextField {
@IBInspectable public var topInset: CGFloat = 0 {
didSet {
self.setNeedsDisplay()
}
}
@IBInspectable public var leftInset: CGFloat = 0 {
didSet {
self.setNeedsDisplay()
}
}
@IBInspectable public var bottomInset: CGFloat = 0 {
didSet {
self.setNeedsDisplay()
}
}
@IBInspectable public var rightInset: CGFloat = 0 {
didSet {
self.setNeedsDisplay()
}
}
override public func textRectForBounds(bounds: CGRect) -> CGRect {
return UIEdgeInsetsInsetRect(bounds, UIEdgeInsetsMake(topInset, leftInset, bottomInset, rightInset))
}
override public func editingRectForBounds(bounds: CGRect) -> CGRect {
return UIEdgeInsetsInsetRect(bounds, UIEdgeInsetsMake(topInset, leftInset, bottomInset, rightInset))
}
}
, özellikleri IB tamamen normal görünür ama değerlerinden biri güncelleştirmeye çalıştığınızda, Xcode projesini inşa
ve aşağıdaki tükürür iki uyarılar:error: IB Designables: Failed to update auto layout status: dlopen([APP_NAME].app, 1): no suitable image found. Did find:
[APP_NAME].app: can't map unslidable segment __TEXT to 0x100000000 with size 0x7EB000
error: IB Designables: Failed to render instance of CLYInsetTextField: dlopen([APP_NAME].app, 1): no suitable image found. Did find:
[APP_NAME].app: can't map unslidable segment __TEXT to 0x100000000 with size 0x7EB000
Ben oluşturmak ve sadece iyi simülatör yürütüyorum ve görünümü oluşturulur yaptığımda o beklediğiniz gibi olabilir. Sadece IB’de bu konuya karşı çıkmaya çalıştığım zaman. Interface Builder'da etkileşimli özel görünümler yapmak için gördüğüm diğer örnekler, benimki kadar basit gibi görünüyor ve sorunsuz çalışıyor. Kaybettiğim bir adım var mı, yoksa yapmaya çalıştığım şey, işe gitmiyor mu?