Трудно нажимать кнопку в элементах панели навигации SwiftUI - PullRequest
0 голосов
/ 03 марта 2020

У меня SwiftUI NavigationView с Button в качестве ведущего элемента панели навигации. Кажется, действие кнопки срабатывает только тогда, когда пользователь нажимает внутри этой маленькой Image. Могу ли я увеличить площадь смещения, не влияя на высоту панели навигации?

Я попытался добавить .frame к Image, но это сделало панель навигации слишком большой.

import SwiftUI

struct ContentView: View {
    var body: some View {
        NavigationView {
            Text("Foo")
                .navigationBarTitle(Text("Title"), displayMode: .inline)
                .navigationBarItems(leading:
                    HStack {
                        Button(action: {
                            print("tapped")
                        }) {
                            Image(systemName: "info.circle")
                        }
                    })
            }
    }
}

Ответы [ 2 ]

1 голос
/ 04 марта 2020

(Один из) могут помочь следующие модификаторы:

.imageScale(.large)

Изображение из SFSymbols имеет три размера:

  • .small для использования встроенного текста
  • .medium для использования в качестве значка
  • .large для использования в качестве кнопки на навигационной панели или нижней панели
.padding()

Добавляет отступ вокруг изображения. Прокладка также должна быть надеваемой.

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

Попробуйте это

struct ContentView: View {
    var body: some View {
        NavigationView {
            Text("Foo")
                .navigationBarTitle(Text("Title"), displayMode: .inline)
                .navigationBarItems(leading:
                    HStack {
                        Button(action: {
                            print("tapped")
                        }) {
                            Image(systemName: "info.circle").imageScale(.large) //Here is the change in image scale property
                        }
                    })
            }
    }
}

Счастливое кодирование ...

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