簡體   English   中英

SwiftUI 按鈕及其可點擊區域移開並且不再覆蓋

[英]SwiftUI Buttons and their tappable areas shifted away and doesn't cover anymore

我在視圖尤其是按鈕方面遇到了問題,因為它們可以被點擊(但它適用於所有視圖)它們可點擊的(焦點區域)從呈現的視圖中移動了一點。 布局保持正常,但如果你想點擊按鈕,它的可點擊區域會向下和向右移動。 因此,不是單擊按鈕,而是向下單擊並向右單擊。 否則不執行任何操作。

從 Debug 視圖層次結構中可以在此視圖上看到最好的。 它發生在從模態演示返回后。 但是我看不到任何可能發生的代碼方式的線索。 它發生的我們似乎與其他絕對正確的觀點沒有什么不同。

我可以看到將 VStack 包裝在 ScrollView 中會破壞此視圖,但不會發生在其他類似視圖上。

 var body: some View {
        NavigationView {
            ScrollView(.vertical, showsIndicators: false) {
                Group {
                    contentView
                    contentView
                    contentView
                    contentView
                    contentView
                    contentView
                    contentView
                    contentView
                }
                contentView
                contentView
                contentView
                contentView
                    
            }
            .padding(.horizontal)
        }
        .navigationViewStyle(.stack)
  
    }
    

在此處輸入圖像描述

好的,我找到了。 問題在於此視圖的內容取決於@Published屬性,如shoulDisplayView1Or2 並根據它是真還是假顯示view1view2 此外,此屬性是在呈現的模態視圖(工作表)被關閉時同時設置的。 就像在對事情采取一些行動之后一樣 1. 關閉模態並設置 shouldDisplayView1Or2 的新值。 這張表根據 shouldDisplayView1Or2 標志關閉和調整 view1 或 view2 導致此按鈕呈現區域及其可點擊區域被移開。

解決此問題的方法是在Combine訂閱中添加DispatchQueue.main或在常規代碼中添加DispatchQueue.main.async { }以放置此標志shouldDisplayView1Or2設置的位置。 通過這種方式,我認為先關閉,然后調整 view1 或視圖及其渲染,然后整體布局正確渲染,並在其位置上放置可點擊區域。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM