         }
     }
     
-    public required init?(coder aDecoder: NSCoder) {
+    @objc public required init?(coder aDecoder: NSCoder) {
         super.init(coder: aDecoder)
         commonInit()
     }
     
-    public override init(frame: CGRect) {
+    @objc public override init(frame: CGRect) {
         super.init(frame: frame)
         self.commonInit()
     }
     
-    public init() {
+    @objc public init() {
         super.init(frame: .zero)
     }
     

    }
    
    /// The delegate of ExpandableLabel
    weak open var delegate: ExpandableLabelDelegate?
    
    /// Set 'true' if the label should be collapsed or 'false' for expanded.
    @IBInspectable open var collapsed: Bool = true {

/**
 * The delegate of ExpandableLabel.
 */
@objc public protocol ExpandableLabelDelegate: NSObjectProtocol {
    @objc func willExpandLabel(_ label: ExpandableLabel)
    @objc func didExpandLabel(_ label: ExpandableLabel)
    
    @objc func willCollapseLabel(_ label: ExpandableLabel)
    @objc func didCollapseLabel(_ label: ExpandableLabel)
}

/**
 * ExpandableLabel
 */
@objc open class ExpandableLabel: UILabel {
    
    public enum TextReplacementType {
        case character
