SwiftUI: минимум ScaleFactor не обрабатывает специальные символы, такие как í или ý - PullRequest
1 голос
/ 25 марта 2020

Я установил шрифт как 200, а минимальный масштаб на 0,01. Все отлично масштабируется при использовании английских sh символов. Но когда я попытался использовать текст или какое-либо предложение, включающее эти символы, масштабирование было неправильным. Что еще более странно, так это то, что иногда масштабирование выглядит хорошо в портретном режиме, а не в альбомном, а в других случаях - наоборот.

Я использую пользовательский шрифт и не нашел способа его использовать. LargeFont или какой-то другой подход. Существует ли альтернативный путь к тому, чего я пытаюсь достичь?

import SwiftUI

struct TextScale: View {
    var body: some View {
        GeometryReader { geo in
            VStack(spacing: 0) {
                Text("ýúáí!")
                    .font(.custom("Verdana-Bold", size: 200))
                    .lineLimit(1)
                    .minimumScaleFactor(0.01)
                    .foregroundColor(Color.white)
                    .frame(width: geo.size.width, height: geo.size.height/5, alignment: .center)
                .background(Color.green)

                Image(systemName: "camera")
                    .resizable()
                    .scaledToFit()
                    .frame(width: geo.size.width, height: 3*geo.size.height/5)
                    .background(Color.blue)

                HStack {
                    Image(systemName: "camera")
                        .resizable()
                        .scaledToFit()
                }
                .frame(width: geo.size.width, height: geo.size.height/5)
                //.padding(.bottom)
                .background(Color.orange)
            }

            .background(Color.gray)
        }
    }
}
struct TextScale_Previews: PreviewProvider {
    static var previews: some View {
        TextScale()
    }
}

1 Ответ

0 голосов
/ 25 марта 2020

изменить стратегию макета ... попробуйте

struct ContentView: View {
    var body: some View {
        GeometryReader { geo in
            VStack(spacing: 0) {
                Text("yáž!")
                    .font(.custom("Verdana-Bold", size: geo.size.height/9))
                    .lineLimit(1)
                    .foregroundColor(Color.white)
                    .frame(maxWidth: .infinity, maxHeight: .infinity)
                .background(Color.green)

                Image(systemName: "camera")
                    .resizable()
                    .scaledToFit()
                    .frame(width: geo.size.width, height: 3*geo.size.height/5)
                    .background(Color.blue)

                HStack {
                    Image(systemName: "camera")
                        .resizable()
                        .scaledToFit()
                }
                .frame(width: geo.size.width, height: geo.size.height/5)
                //.padding(.bottom)
                .background(Color.orange)
            }//.edgesIgnoringSafeArea(.all)

            .background(Color.gray)
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...