2017-07-26 2 views
0

Wie verbinde ich IBDesignable benutzerdefinierte Klasse mit UIButton?Kann benutzerdefinierte IBDesignable-Klasse nicht mit UIButton auf Storyboard verknüpfen

-Code

import UIKit 

@IBDesignable class MyButton: UIView { 
    @IBInspectable var borderColor: UIColor = UIColor.clear { 
     didSet { 
      layer.borderColor = borderColor.cgColor 
     } 
    } 

    @IBInspectable var borderWidth: CGFloat = 0 { 
     didSet { 
      layer.borderWidth = borderWidth 
     } 
    } 

    @IBInspectable var cornerRadius: CGFloat = 0 { 
     didSet { 
      layer.cornerRadius = cornerRadius 
     } 
    } 
} 

Der Name der Datei ist MyButton.swift

enter image description here

Es ist nicht MyButton wie die Klasse nicht zeigen? Wie würde ich dieses Problem beheben?

Antwort

1

Sie können benutzerdefinierte Klassen nur mit Objekten desselben Typs oder einem Typ verknüpfen, von dem er erbt. Statt

@IBDesignable class MyButton: UIView { 

Sie wollen wahrscheinlich

@IBDesignable class MyButton: UIButton { 

oder verknüpfen Sie es mit einem UIView Objekt statt

+0

ich UIButton bereits geändert, aber die Grenze der Farbe ändert sich nicht? Ist meine Klasse korrekt? – sinusGob

+0

Es ist in Ordnung, ich ändere stattdessen nur die Breite. – sinusGob

+0

@sinusGob Layer-Eigenschaften funktionieren nicht direkt auf UIButton, normalerweise setze ich eine UIView dahinter und ändere das, wenn ich Shadow- oder Button-Rahmen oder ähnliches brauche – Daniel

5

Wahrscheinlich müssen Sie MyButton von UIButton anstelle von UIView erben.

Verwandte Themen