Код: Выделить всё
struct SimpleView: View {
var body: some View {
VStack {
Button {
// Action not relevant...
} label: {
Image(systemName: "globe")
.font(.largeTitle)
Text("Button").fixedSize()
}
.foregroundStyle(.white)
.buttonStyle(.glassProminent)
.overlay {
Button {
// Not executed when button is tapped outside of the ScrollView's bounds
print("Overlay button tapped!")
} label: {
Image(systemName: "info.bubble.fill.rtl")
.font(.largeTitle)
Text("Overlay Button").fixedSize()
}
.foregroundStyle(.tint)
.buttonStyle(.glass)
.offset(x: -80, y: 80)
}
}
.padding(16)
}
}
В этом представлении я могу нажать кнопку. Это реагирует на мои трогательные отпечатки «Кнопка налога!» к консоли, поэтому ее действие выполняется.struct InScrollView: View {
var body: some View {
ScrollView {
SimpleView()
}
.scrollClipDisabled()
.background(.yellow)
}
}
< /code>
Кнопка все еще визуально реагирует на мои прикосновения, но ее действие больше не выполняется, когда я нажимаю кнопку за пределами границ Scrollview < /code> - указано на желтый фон. к консоли.
Когда вы кнопку за пределами желтой области, она ничего не печатает. Это отрезало бы наложение, но я хочу, чтобы полное наложение было нарисовано. К сожалению, кажется, что этот модификатор только отключает обрезку, но не «прикоснись к обрезанию».
Есть идеи о том, как сделать эту работу?
Подробнее здесь: https://stackoverflow.com/questions/797 ... llviews-bo
Мобильная версия