Я хочу, чтобы текст отображался «выделенным», а не все текстовое поле. Я бы хотел, чтобы каждая строка была выделена индивидуально. Я не нашел лучшего способа сделать это. Единственное, что я могу придумать, это использовать тот же текст из моей переменной, присвоив ему цвет фона, опустить шрифт до места, где он образует пробел, и сделать цвет текста четким... если это имеет смысл. Вот чего я хочу. Я использую SwiftUI. Любая помощь приветствуется.
Что важно, это то, что я использую для выравнивания текста.
struct LabelAlignment: UIViewRepresentable {
var text: String
var textAlignmentStyle : TextAlignmentStyle
var width: CGFloat
var fontName: String
var fontSize: CGFloat
var fontColor: UIColor
func makeUIView(context: Context) -> UILabel {
let font = UIFont(name: fontName, size: fontSize)
let label = UILabel()
label.textAlignment = NSTextAlignment(rawValue: textAlignmentStyle.rawValue)!
label.numberOfLines = 0
label.preferredMaxLayoutWidth = width
label.font = font
label.setContentHuggingPriority(.required, for: .horizontal)
label.setContentHuggingPriority(.required, for: .vertical)
label.textColor = fontColor
return label
}
func updateUIView(_ uiView: UILabel, context: Context) {
uiView.text = text
}
}
enum TextAlignmentStyle : Int{
case left = 0 ,center = 1 , right = 2 ,justified = 3 ,natural = 4
}





Приписанный текст с межстрочным интервалом и цветом фона
func updateUIView(_ uiView: UILabel, context: Context) {
let paragraphStyle = NSMutableParagraphStyle()
paragraphStyle.lineSpacing = 15
paragraphStyle.alignment = NSTextAlignment(rawValue: textAlignmentStyle.rawValue)!
let attributedText = NSAttributedString(
string: "This is a quote from my favorite book. I will put many more of these quotes on this list. Enjoy for now thank you",
attributes: [
.backgroundColor: UIColor.yellow,
.paragraphStyle: paragraphStyle,
])
uiView.attributedText = attributedText
}
@za.ch, пожалуйста, добавьте это для выравнивания. абзацStyle.alignment = NSTextAlignment(rawValue: textAlignmentStyle.rawValue)!
Вернусь, чтобы сказать спасибо!! Работал отлично.
Очень близко! У меня было что-то подобное, однако в результате мой стиль выравнивания текста по ширине был удален. Есть предположения?