Привет,
У меня есть класс CardButton: UIButton.В методе рисования этого CardButton я хотел бы добавить и центрировать (вертикально и горизонтально) NSAttributed String, который в основном является одним Emoji, внутри него.Результат будет выглядеть примерно так:
Однако NSAttributedString можно выровнять только по центру в горизонтальном измерении внутри контейнера.
Моя идея для решения:
- создать контейнер ViewView внутри CardButton
- center container View как вертикально, так и горизонтально в своем контейнере (то есть CardButton)
- добавить NSAttributedString внутри containerView и размер containerView, чтобы соответствовать шрифту строки.
Таким образом, результат будет выглядеть примерно так:
Моя попытка сделать это выглядит следующим образом:
class CardButton: UIButton {
override func draw(){
//succesfully drawing the CardButton
let stringToDraw = attributedString(symbol, fontSize: symbolFontSize) //custom method to create attributed string
let containerView = UIView()
containerView.backgroundColor = //green
addSubview(containerView)
containerView.translatesAutoresizingMaskIntoConstraints = false
let centerXConstraint = containerView.centerXAnchor.constraint(equalTo: (self.centerXAnchor)).isActive = true
let centerYConstraint = containerView.centerYAnchor.constraint(equalTo: (self.centerYAnchor)).isActive = true
stringToDraw.draw(in: containerView.bounds)
containerView.sizeToFit()
}
}
Короче говоря, я ужасно потерпел неудачу.Сначала я попытался добавить containerView в cardButton, сделал зеленый фон, задал фиксированную ширину и высоту, чтобы убедиться, что он правильно добавлен как подпредставление.Это сделал.Но как только я пытаюсь наложить активные ограничения на это, оно полностью исчезает.
Есть идеи, как к этому подойти?