diff --git a/VDS/Components/Tabs/Tab.swift b/VDS/Components/Tabs/Tab.swift index 73f97666..e2c9de8a 100644 --- a/VDS/Components/Tabs/Tab.swift +++ b/VDS/Components/Tabs/Tab.swift @@ -20,7 +20,7 @@ extension Tabs { open var index: Int = 0 ///label to write out the text - open var label: Label = Label().with { $0.updateStrategy = .alwaysImmediate } + open var label: Label = Label() ///orientation of the tabs open var orientation: Tabs.Orientation = .horizontal { didSet { setNeedsUpdate() } } @@ -95,15 +95,11 @@ extension Tabs { } } - private var widthConstraint: NSLayoutConstraint? { + private var widthConstraint: NSLayoutConstraint { if let width, orientation == .vertical { return label.widthAnchor.constraint(equalToConstant: width) } else { - if label.intrinsicContentSize.width <= minWidth { - return label.widthAnchor.constraint(greaterThanOrEqualToConstant: minWidth) - } else { - return nil - } + return label.widthAnchor.constraint(greaterThanOrEqualToConstant: minWidth) } } @@ -127,8 +123,6 @@ extension Tabs { //-------------------------------------------------- open override func setup() { super.setup() - label.updateStrategy = .alwaysImmediate - addSubview(label) accessibilityTraits = .button @@ -143,19 +137,7 @@ extension Tabs { labelLeadingConstraint = label.leadingAnchor.constraint(equalTo: leadingAnchor) labelLeadingConstraint?.isActive = true - - let layoutGuide = UILayoutGuide() - addLayoutGuide(layoutGuide) - - labelWidthConstraint = layoutGuide.widthAnchor.constraint(greaterThanOrEqualToConstant: minWidth) - labelWidthConstraint?.isActive = true - - //activate the constraints - NSLayoutConstraint.activate([layoutGuide.topAnchor.constraint(equalTo: topAnchor), - layoutGuide.bottomAnchor.constraint(equalTo: bottomAnchor), - layoutGuide.leadingAnchor.constraint(equalTo: leadingAnchor), - layoutGuide.trailingAnchor.constraint(equalTo: trailingAnchor)]) - + publisher(for: UITapGestureRecognizer()) .sink { [weak self] _ in guard let self else { return } @@ -171,26 +153,17 @@ extension Tabs { label.text = text label.textStyle = textStyle label.textPosition = textPosition - label.textColorConfiguration = textColorConfiguration.eraseToAnyColorable() - label.sizeToFit() + label.textColor = textColorConfiguration.getColor(self) //constaints - labelWidthConstraint?.deactivate() - labelLeadingConstraint?.deactivate() - labelTopConstraint?.deactivate() - labelBottomConstraint?.deactivate() - + labelWidthConstraint?.isActive = false labelWidthConstraint = widthConstraint + labelWidthConstraint?.isActive = true labelLeadingConstraint?.constant = leadingSpace labelTopConstraint?.constant = otherSpace labelBottomConstraint?.constant = -otherSpace - labelWidthConstraint?.activate() - labelLeadingConstraint?.activate() - labelTopConstraint?.activate() - labelBottomConstraint?.activate() setNeedsLayout() - layoutIfNeeded() } open override func layoutSubviews() {