Возникают проблемы с масштабированием размера шрифта до высоты / ширины кадра - PullRequest
0 голосов
/ 26 февраля 2020

Я использую iPhone 11 в качестве базовой линии и пытаюсь увеличить размер шрифта при запуске на iPad, но не могу заставить его работать.

Я делаю все программно, и я также использую автоматическое расположение на представлениях, текстовых полях, метках и текстовых представлениях. Я попытался поиграть с AdjustmentsFontSizeToWidth и MinimScaleFactor, NumberOfLines, но безрезультатно. Я не могу изменить размер шрифта при масштабировании до iPad. Вот как это выглядит ...

Я все еще учусь, и я относительно новичок в программировании и Swift, и я пытался задавать этот вопрос раньше, но я думаю, что я был слишком расплывчат в своем вопросе.

Пожалуйста, дайте мне знать, если вам нужно, чтобы я включил в него код.

enter image description here

enter image description here

1 Ответ

1 голос
/ 26 февраля 2020

Я также делаю все программно, и я бы посоветовал вам использовать библиотеку UIKitPlus , которая решит многие ваши проблемы

например, вы можете установить разный размер шрифта для разных устройств или типы устройств легко

TextView().font(.helveticaNeueRegular, 16 !! .iPad(24))

Как вы могли видеть в приведенном выше примере, вы можете установить какое-то значение как обычно, а также вы можете указать другое значение для другого типа устройства через оператор !!.

Это действительно просто и удобно в использовании.

Весь контроллер вашего вида может выглядеть как

import UIKitPlus

class MyViewController: ViewController {
    @State var weight = ""
    @State var repetitions = ""
    @State var notes = ""

    override func buildUI() {
        super.buildUI()
        body {
            VStack {
                Text("Bench Press")
                    .color(.black)
                    .font(.articoBold, 32)
                    .edgesToSuperview(top: 16, leading: 16)
                VSpace(32)
                TextField($weight)
                    .placeholder(AttrStr("Total weight").foreground(.lightGray).font(.articoRegular, 14))
                    .leftView(HStack {
                        HSpace(4)
                        Text("Weight (lbs)").color(.black).font(.articoMedium, 14)
                        HSpace(4)
                    })
                    .color(.black)
                    .font(.articoRegular, 14)
                    .keyboard(.numbersAndPunctuation)
                    .returnKeyType(.next)
                    .tag(0)
                    .shouldReturnToNextResponder()
                TextField($repetitions)
                    .placeholder(AttrStr("Number or Reps...").foreground(.lightGray).font(.articoRegular, 14))
                    .leftView(HStack {
                        HSpace(4)
                        Text("Repetitions").color(.black).font(.articoMedium, 14)
                        HSpace(4)
                    })
                    .color(.black)
                    .font(.articoRegular, 14)
                    .keyboard(.numbersAndPunctuation)
                    .returnKeyType(.next)
                    .tag(1)
                    .shouldReturn { $0.resignFirstResponder() }
                VSpace(32)
                HStack {
                    Image(nil).size(40)
                    HSpace(8)
                    Text("Timer").color(.lightGray).font(.articoMedium, 14)
                }
                .alignment(.center)
                VSpace(32)
                TextView($notes)
                    .placeholder("Notes...")
                    .color(.black)
                    .font(.articoRegular, 14)
                VSpace(32)
                Text("Set 1 0 lbs - 0 Reps").color(.black).font(.articoRegular, 14)
                VSpace(16)
                Text("Set 2 0 lbs - 0 Reps").color(.black).font(.articoRegular, 14)
                VSpace(16)
                Text("Set 3 0 lbs - 0 Reps").color(.black).font(.articoRegular, 14)
                VSpace(16)
                Text("Set 4 0 lbs - 0 Reps").color(.black).font(.articoRegular, 14)
                Space()
                HStack {
                    Button("Next Set").onTapGesture {
                        print("next set tapped")
                    }
                    Button("Next Excercise").onTapGesture {
                        print("next excercise tapped")
                    }
                }
                VSpace(32)
            }
            .alignment(.center)
            .edgesToSuperview()
        }
    }
}
...