簡體   English   中英

以編程方式在iOS中禁用Dock

[英]Disabling Dock in iOS programmatically

是否可以禁用iOS中彈出的基座?

這是我的View Controller。 請注意,它在頁腳中有一個可拖動的視圖控制器。

視圖控制器的屏幕截圖

但是當我試圖快速啟動它時,停靠欄出現了:

Dock出現的截圖

有沒有辦法禁用它?

我認為你可以得到的最接近的是iOS 11的首選屏幕標記DeferringSystemGestures() ,它會在底部顯示一個指示器,但在第一次滑動時不會拉出底座。 例如,在視圖控制器中:

override func preferredScreenEdgesDeferringSystemGestures() -> UIRectEdge {
    return [.bottom]
}

根據我的經驗,它仍然會吃掉滑動手勢,但它仍然為用戶提供了第二次擊中正確目標的機會。

但是,在iOS <11上,只能通過隱藏狀態欄來獲取此行為。

編輯:通常在面對實現這樣的設計選擇時,我嘗試提供第二個非干擾手勢作為備份,例如在該區域中點擊,具有相同的效果。

通常應避免此類沖突,因為它們會降低用戶體驗:您如何知道用戶實際上並不想使用Dock?

但是如果您真的想要,可以覆蓋控制器中的preferredScreenEdgesDeferringSystemGestures()方法,以指定哪些邊緣不應該(立即)觸發系統手勢。

例如

override func preferredScreenEdgesDeferringSystemGestures() -> UIRectEdge {
    return .bottom
}

與在iOS 11中一樣, 您無法在應用程序中禁用Dock也無法在“設置”中禁用Dock 我建議提供一個更大的區域從底部向上滑動。

暫無
暫無

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

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