             rearrangeViews()
         }
     }
-    @IBInspectable open var shadowColor: UIColor = UIColor.white {
-        didSet {
-            rearrangeViews()
-        }
-    }
-    @IBInspectable open var shadowRadius: CGFloat = 0 {
-        didSet {
-            rearrangeViews()
-        }
-    }
-    @IBInspectable open var shadowOffset: CGSize = CGSize.zero {
-        didSet {
-            rearrangeViews()
-        }
-    }
-    @IBInspectable open var shadowOpacity: Float = 0 {
-        didSet {
-            rearrangeViews()
-        }
-    }
-    
-    @IBInspectable open var enableRemoveButton: Bool = false {
+    @IBInspectable open dynamic var shadowColor: UIColor = UIColor.white {
+        didSet {
+            rearrangeViews()
+        }
+    }
+    @IBInspectable open dynamic var shadowRadius: CGFloat = 0 {
+        didSet {
+            rearrangeViews()
+        }
+    }
+    @IBInspectable open dynamic var shadowOffset: CGSize = CGSize.zero {
+        didSet {
+            rearrangeViews()
+        }
+    }
+    @IBInspectable open dynamic var shadowOpacity: Float = 0 {
+        didSet {
+            rearrangeViews()
+        }
+    }
+    
+    @IBInspectable open dynamic var enableRemoveButton: Bool = false {
         didSet {
             for tagView in tagViews {
                 tagView.enableRemoveButton = enableRemoveButton

            rearrangeViews()
        }
    }
    @IBInspectable open var removeIconLineWidth: CGFloat = 1 {
        didSet {
            for tagView in tagViews {
                tagView.removeIconLineWidth = removeIconLineWidth

@IBDesignable
open class TagListView: UIView {
    
    @IBInspectable open dynamic var textColor: UIColor = UIColor.white {
        didSet {
            for tagView in tagViews {
                tagView.textColor = textColor
