2014-10-20 10 views
5

Mam problemy z uzyskaniem podklasy UITextField do poprawnego renderowania w programie Interface Builder z IBDesignable. Podklasa jest dość prosta, pozwala użytkownikowi zdefiniować wstawki do umieszczenia tekstu w pliku UITextField. Kod jest w następujący sposób:Błędy z renderowaniem niestandardowej podklasy UITextField w konstruktorze interfejsu

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)) 
    } 
} 

Podczas korzystania z tej klasy w serii ujęć, właściwości pojawiają się w IB perfekcyjnie, ale gdy próbuję zaktualizować jedną z wartości, Xcode buduje projekt i wypluwa następujący dwa ostrzeżenia:

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 

mogę zbudować i uruchomić w symulatorze dobrze, a kiedy robię widok jest wyświetlany jako ja spodziewałem się, że. Właśnie wtedy, gdy próbuję renderować to w IB, pojawia się przeciwko temu problemowi. Inne przykłady, które widziałem do tworzenia interaktywnych widoków niestandardowych w programie Interface Builder, wydają się być tak proste jak moje i działają bez problemów. Czy brakuje mi kroku, czy też to, co próbuję zrobić, po prostu nie działa?

Odpowiedz

Powiązane problemy