diff --git a/VDS/Components/Tilelet/Tilelet.swift b/VDS/Components/Tilelet/Tilelet.swift index 7a214388..21ff441e 100644 --- a/VDS/Components/Tilelet/Tilelet.swift +++ b/VDS/Components/Tilelet/Tilelet.swift @@ -270,9 +270,10 @@ open class Tilelet: TileContainer { badge.maxWidth = badgeModel.maxWidth if badgeContainerView.superview == nil { stackView.insertArrangedSubview(badgeContainerView, at: 0) + setNeedsLayout() } } else { - badgeContainerView.removeFromSuperview() + removeFromSuperview(badgeContainerView) } } @@ -326,9 +327,10 @@ open class Tilelet: TileContainer { if titleLockupContainerView.superview == nil { stackView.insertArrangedSubview(titleLockupContainerView, at: badgeContainerView.superview == nil ? 0 : 1) + setNeedsLayout() } } else { - titleLockupContainerView.removeFromSuperview() + removeFromSuperview(titleLockupContainerView) } } @@ -366,19 +368,21 @@ open class Tilelet: TileContainer { } if iconContainerView.superview == nil { stackView.addArrangedSubview(iconContainerView) + setNeedsDisplay() } } else { - iconContainerView.removeFromSuperview() + removeFromSuperview(iconContainerView) } - } open override func updateView() { super.updateView() - + updateBadge() updateTitleLockup() updateIcons() + + layoutIfNeeded() } } diff --git a/VDS/Protocols/ViewProtocol.swift b/VDS/Protocols/ViewProtocol.swift index 38ebcd96..d8acfb57 100644 --- a/VDS/Protocols/ViewProtocol.swift +++ b/VDS/Protocols/ViewProtocol.swift @@ -14,3 +14,11 @@ public protocol ViewProtocol { func setup() } +extension ViewProtocol where Self: UIView { + public func removeFromSuperview(_ view: UIView){ + if view.superview != nil { + view.removeFromSuperview() + setNeedsDisplay() + } + } +}