Есть ли способ сделать View «недоступным», позволяющим касаниям соединяться с View за ним? - PullRequest
0 голосов
/ 22 сентября 2019

У меня есть представление в .overlay, и я хотел бы, чтобы оно игнорировало нажатия, потому что оно каким-то образом блокирует мой контент за ним от какой-либо регистрации, есть ли решение, которое позволило бы мне просто добавить свойство, подобное .ignore, такчто касания могут проходить к представлению позади него, содержащему .onTapGesture?

Я также столкнулся с этой проблемой в другом месте моего приложения, где представление пока еще не закрыто. Часть, которая находится за границами и обрезана(не видно), кажется, блокирует касания к представлению позади него.Это может быть ошибка, я не уверен, хотя

Ответы [ 2 ]

1 голос
/ 23 сентября 2019

С модификатором contentShape вы можете определить форму содержимого для проверки попадания.Если эта фигура будет иметь ширину и высоту 0, вы не можете нажать на нее.

struct HitTestingView: View {

    struct HitTestingShape : Shape {
        func path(in rect: CGRect) -> Path {
            return Path(CGRect(x: 0, y: 0, width: 0, height: 0))
        }
    }

    var body: some View {

        Text("Hello World!")
            .padding(20)
            .background(Color.blue.cornerRadius(8))
            .contentShape(HitTestingShape())
            .onTapGesture {
                print("Tap")
        }
    }
}
0 голосов
/ 22 сентября 2019
myView.isUserInteractionEnabled = false

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