Условное изменение метки элемента панели навигации на более короткую метку приводит к неправильному выравниванию - PullRequest
1 голос
/ 20 февраля 2020

При переключении метки элемента панели навигации с более длинной метки на более короткую, новая, более короткая метка будет выровнена по центру старой метки, как показано на двух изображениях ниже:

enter image description here

enter image description here

Это код проблемы:

struct NavBarItemIssueView: View {
    @State private var isLargeView = true

    var body: some View {
        NavigationView {
            Text("Some text")
                .navigationBarItems(leading: Button(action: {
                    self.isLargeView.toggle()
                }) {
                    if self.isLargeView == true {
                        Text("Show small label")
                    } else {
                        Text("Small")

                    }
                })
        }
    }
}

В приложении I я должен переключаться между двумя метками, когда режим редактирования включен или отключен, и эта проблема возникает. Есть ли способ исправить это выравнивание в swift (ui)?

1 Ответ

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

Вы можете установить рамку для своей кнопки с помощью minWidth, которая приблизительно равна ширине самой большой кнопки, затем вы можете выровнять кнопку по переднему краю:

        NavigationView {
            Text("Some text")
                .navigationBarItems(leading: Button(action: {
                    self.isLargeView.toggle()
                }) {
                    if self.isLargeView == true {
                        Text("Show small label")
                    } else {
                        Text("Small")

                    }
                }
                .frame(minWidth: 200, alignment: .leading)
            )
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...