#ios #swift #xcode #swiftui
Вопрос:
У меня проблема со Swift, я не могу выровнять метку в конце заголовка, я пробовал по-разному, но безуспешно
Это результат, который я получаю, и то, что я хотел бы получить
Label {
Text("Lorem ipsum dolor sit amet, consectetur adipiscing elit. Illud mihi a te nimium festinanter dictum videtur")
} icon: {
Text(" TEST ")
.background(Color.orange)
.foregroundColor(.white)
}
} .labelStyle(RightIconLabelStyle())
struct RightIconLabelStyle: LabelStyle {
func makeBody(configuration: Configuration) -> some View {
HStack(alignment: .lastTextBaseline) {
configuration.title
configuration.icon
}
}
}
Я пробовал также использовать 2 элемента Text (), но это дает мне ошибку, у вас не может быть другого свойства цвета фона для определенного текста()
Text("This is a test title") Text ("TEST").background(Color.orange)
Есть ли какое-то решение?
Комментарии:
1. Добро пожаловать в Stack Overflow! Я не уверен, что вы пытаетесь сделать со своим кодом. А
Label
берет аText
и анImage
. Вы не можете податьText(" TEST ")
заявку на значок и ожидать, что он что-нибудь покажет.2. @Yrb Спасибо, вы правы, но я не знаю, что использовать, как ни странно, он оказывает также на текст, я отправил скриншот, в основном мне нужно название и дописать в конце еще один текст с другим цветом фона,
This is a title (featured)
что-то вроде этого, где фигурирует должны иметь другой цвет фона, чем звание3. Это легко решить, если бы можно было изменить цвет переднего плана вместо цвета фона.
4. @JoakimDanielson Мне нужен фон, добавление текста() Текст() Я видел, что вы можете изменить цвет переднего плана, но не фона, странно. К сожалению, мне действительно нужен фон другого цвета
5. Причина этого в том, что существует версия .foreground, которая возвращает текст, но не существует для .background
Ответ №1:
Я думаю, что ваш лучший вариант-просто сделать «Тест» AttributedString
таким образом:
struct AttributedStringView: View {
var test: AttributedString {
var attText = AttributedString("Test")
attText.foregroundColor = .white
attText.backgroundColor = .orange
return attText
}
var body: some View {
HStack {
Text("Lorem ipsum dolor sit amet, consectetur adipiscing elit. Illud mihi a te nimium festinanter dictum videtur")
Text(" ")
Text(test)
}
}
}
Комментарии:
1. Спасибо! Почти идеально, есть ли способ установить радиус угла для attText? Мне нужна форма таблетки для фона
2. @vamp: Не ждите ответа для решения другой проблемы, сначала решите исходную проблему! Если вы хотите, вы можете создать новый вопрос и для этого! Если ответ решит проблему, просто примите его.
3. @swiftPunk на исходном изображении действительно видны закругленные углы. Вампир, это не просто, но я укажу вам здесь: Фон с закругленными углами в UITextView . Это тот же самый базовый
AttributedString
принцип, который мы используем здесь. Возможно, вам придется открыть его в закрытом окне браузера, чтобы пройти проверку «вы достигли предела просмотра» на сайте.