 
         if !isEnabled {
             titleLabel.textColor = disabledColor
-        } else if hasErrorMessage {
-            titleLabel.textColor = titleErrorColor ?? errorColor
+        } else if hasErrorMessage && errorMessagePlacement == .defaultPlacement {
+            if errorMessagePlacement == .defaultPlacement {
+                titleLabel.textColor = titleErrorColor ?? errorColor
+            }
         } else {
             if editingOrSelected || isHighlighted {
                 titleLabel.textColor = selectedTitleColor

                titleText = titleOrPlaceholder()
            }
        }
        titleLabel.text = titleText
        titleLabel.font = titleFont

        updateTitleVisibility(animated)
    }

    fileprivate var _titleVisible: Bool = false

    override open func textRect(forBounds bounds: CGRect) -> CGRect {
        let superRect = super.textRect(forBounds: bounds)
        let titleHeight = self.titleHeight()
        
        var height = superRect.size.height - titleHeight - selectedLineHeight
        
        if errorMessagePlacement == .bottomPlacement {
            height = height - errorHeight()
        }
        
        let rect = CGRect(
            x: superRect.origin.x,
            y: titleHeight,
            width: superRect.size.width,
            height: height
        )
        return rect
    }
