Как упростить нажатие ссылки на значок панели навигации в SwiftUI?

Я добавил ссылку на задний край моей панели навигации, используя следующий код:

bodyContent
    .navigationBarItems(trailing:
        NavigationLink(
            destination: InfoView()
        ) {
            Image(systemName: "info.circle")
        }
    )

Этот код работает, однако я обнаружил, что пользователю сложно нажимать (тестирование на iPhone X) из-за небольшой выбираемой области.

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

значок информации

Как я могу увеличить размер этой области, хотя бы до размера круглого значка? В идеале пользователь мог бы также нажимать в любом месте выше и ниже значка в пределах вертикального пространства, занимаемого панелью навигации.


person Wesley    schedule 13.04.2020    source источник


Ответы (2)


Просто добавьте отступ

bodyContent
    .navigationBarItems(trailing:
        NavigationLink(
            destination: InfoView()
        ) {
            Image(systemName: "info.circle").padding() // << here !!
        }
    )
person Asperi    schedule 13.04.2020
comment
Спасибо за помощь! Заполнение заднего края смещает значок, поэтому я выбрал это: .padding([.leading, .top, .bottom]). - person Wesley; 13.04.2020

Вы также можете передать .frame (ширина: 100, высота: 100)

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

person DckBrd    schedule 13.04.2020