Как добавить рамку к тексту в кнопке? - PullRequest
0 голосов
/ 21 июня 2019

У меня есть кнопка с текстом, и мне нужно добавить границу, это текст 0.2 px, я использовал @IBDesignable, но она работает для кнопки, а не для текста.

мой код:

@IBInspectable var borderWidth: CGFloat = 1.0{
        didSet{
            layer.borderWidth = borderWidth
        }
    }
    @IBInspectable var borderTextColor:UIColor?{
        didSet{
            layer.borderColor = borderTextColor?.cgColor
        }
    }

Ответы [ 3 ]

0 голосов
/ 21 июня 2019

Вы добавляете границу к своему UIButton, а не UILabel.Используйте UILabel для текста, а не UIButton текста, а затем присвойте границу UILabel, как это

    yourLabel.layer.borderColor = UIColor.black.cgColor
    yourLabel.layer.borderWidth = 2
    yourLabel.layer.cornerRadius = 5
0 голосов
/ 21 июня 2019

Если вы хотите добавить рамку к самому тексту, вы можете использовать приписанную строку, чтобы добавить штрих к тексту.Вы можете сделать это для большинства текстовых элементов пользовательского интерфейса в UIKit, таких как UILabel или UIButton

// Create the stroke attributes
let attributes: [NSAttributedString.Key: Any] = [
    NSAttributedString.Key.strokeColor: UIColor.black,
    NSAttributedString.Key.foregroundColor: UIColor.white,
    NSAttributedString.Key.strokeWidth: -4.0
];

// Create the text with a stroke as an attributed string
let textWithStroke = NSAttributedString(
    string: "Button Text",
    attributes: attributes
);

// Set the attributed string to the button
button.setAttributedTitle(textWithStroke, for: .normal);

. Используйте отрицательное значение для .strokeWidth, чтобы обводка обводила за пределамитекст, а не внутри

Если вы хотите редактировать шрифт, просто добавьте ключ NSAttributedString.Key.font со значением UIFont в массив attributes

0 голосов
/ 21 июня 2019

Вы можете просто присвоить кнопке идентификатор и просто использовать обычный CSS. Вот так -

#myButton{text-shadow: -1px -1px 0 #000, 1px -1px 0 #000, -1px 1px 0 #000, 1px 1px 0 #000;}

Это просто создаст тень, как контур вашего текста. Управляйте цветами в соответствии с вашими потребностями.

...