Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
470 views
in Technique[技术] by (71.8m points)

swift - How to properly present a popup view in SwiftUI (not as a sheet)?

I would want to present a popup Slider in my iOS app. I'm currently using overlay like so:

.overlay(
    HStack {
        if isEditingValue {
            Slider(value: $valueToEdit)
                .offset(y: 90)
        }
    }
)

The problem is that any content after the view with the .overlay, will be drawn on top of the slider, that has been moved down with .offset so as not to obscure the value to be edited.

How can I get the popup Slider to be presented above all other content in correct relation to the view it will edit? I'm currently hiding all content below the value to be edited when the popup Slider is visible, which is not optimal.

question from:https://stackoverflow.com/questions/65917894/how-to-properly-present-a-popup-view-in-swiftui-not-as-a-sheet

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Within one view hierarchy this can be solved by zIndex, like

TargetView()
.overlay(
    HStack {
        if isEditingValue {
            Slider(value: $valueToEdit)
                .offset(y: 90)
        }
    }
)
.zIndex(1) // default is 0, so others will be below
//.zIndex(isEditingValue ? 1 : 0)    // as variant

// ... other sibling views

if view hierarchy is complex, then view with slider might be overlapped with view from different view hierarchy, and such case cannot be solved just by layout modifiers and needs to be solved at global level of your app UI design.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...