#ios #fonts #display
#iOS #шрифты #отображение
Вопрос:
Все, что я новичок в iOS и SwiftUI (2 месяца). Я изо всех сил пытаюсь понять следующее поведение и надеюсь, что кто-нибудь сможет указать мне, как я могу диагностировать.
У меня есть этот код, успешно генерирующий это представление в поставщике предварительного просмотра
однако, когда я запускаю его на устройстве или в симуляторе, шрифты меняются (это происходит и для системных образов), чтобы выглядеть более похожими на это (увеличено).
Приведенный ниже вид отображается внутри очень общего tabview — я вообще не могу его понять и мог бы использовать некоторые рекомендации.
Спасибо
Крейг
var body: some View {
VStack(spacing: 0.0) {
HStack(alignment: .top){
Text(player.firstName)
.bold()
Text(player.lastName)
.bold()
}
.font(.title)
HStack {
Image(uiImage: UIImage(data: player.playerPhoto) ?? UIImage())
.resizable()
.aspectRatio(contentMode: .fit)
.frame(width: /*@START_MENU_TOKEN@*/100/*@END_MENU_TOKEN@*/, height: 100)
.clipShape(Circle())
.overlay(Circle().stroke(Color.purple, lineWidth: 4.0))
Spacer()
VStack {
Text("lifetime averages")
.font(.body)
.foregroundColor(Color.gray)
HStack {
Spacer()
VStack {
Text("Batting")
.font(.title2)
.bold()
Text("(battingAverage, specifier: "%.3f")")
}
.padding(.leading)
if isPitcher {
Spacer()
VStack {
Text("ERA")
.font(.title2)
.bold()
Text("(earnedRunAverage, specifier: "%.2f")")
}
.padding(.trailing)
Spacer()
}
}
}
Spacer()
}
HStack {
VStack {
Text("(noTeams)")
.font(.headline)
Text("teams")
.font(.subheadline)
.foregroundColor(Color.gray)
}
.padding(.leading, 10)
Spacer()
VStack {
Text("(noSeasons)")
.font(.headline)
Text("seasons")
.font(.subheadline)
.foregroundColor(Color.gray)
}
Spacer()
VStack {
Text("(noGames)")
.font(.headline)
Text("games")
.font(.subheadline)
.foregroundColor(Color.gray)
}.padding(.trailing, 10)
}
HStack{
Spacer()
Text("All Lifetime Stats >")
.font(.callout)
.foregroundColor(Color.blue)
}
}
.frame(width: 350, height: 200, alignment: /*@START_MENU_TOKEN@*/.center/*@END_MENU_TOKEN@*/)
}
Ответ №1:
В вашем коде не указано a .font(...)
для этих двух Text
элементов.
Возможно ли, что вы установили шрифт по умолчанию где-то в другом месте?
Я могу воспроизвести то, что вы получаете, делая это (используя PlayerView
как отдельное представление, а не в таблице).
При использовании UIKit App Delegate
в willConnectTo session
:
let contentView = PlayerView()
.font(.largeTitle)
или, если вы используете SwiftUI App
:
@main
struct TestApp: App {
var body: some Scene {
WindowGroup {
PlayerView()
.font(.largeTitle)
}
}
}
Комментарии:
1. Действительно, спасибо — размещение .font(.body) в представлении вкладок, которое вызывало его, решило проблему. Я очень ценю инструкцию. Я кое-что узнал.