2015-11-16 78 views
0

因此,我正在研究Google地圖應用,並且我想要某種行爲。當點擊標記時,我想要顯示下面的「細節視圖」來彈出。如果向上滑動該細節視圖,我希望它覆蓋整個屏幕並顯示「更多細節」。如果向下滑動,它會關閉它。部分視圖與故事板

My ideal behavior

我只是無法弄清楚如何實現這一行爲。容器視圖?只是一個普通的UIView機智手勢識別器?莫代爾賽格?

我不是要求代碼,只是一些詞讓我走上正軌。

編輯:對於其他尋找這種行爲的人,下面的每個答案都很完美。我去了容器視圖,因爲詳細視圖正在做一些網絡請求和UITableView工作。

+0

你可以把一個scrollView的細節和更多的細節視圖,並設置默認的內容偏移,使只有detailView顯示,禁用scrollView滾動,添加手勢識別器,然後在識別出手勢後,重新啓用滾動並將細節視圖向上滾動。 – NSGangster

+0

嗨@MatthewLawrenceBailey,我試過你的方法,但我不得不承認我對UIScrollViews沒有經驗。我設法計算出正確的偏移量,但是當我開始滾動它時,滾動視圖內的所有內容都會跳到屏幕的一半,而不是跟隨我的手指。你知道我做錯了嗎? – Mattias

+0

滾動視圖有一個名爲contentView的子視圖,它必須大於scrollView才能滾動,會發生什麼情況是contentView沒有延伸到屏幕底部足以讓它保持下來,這裏是鏈接蘋果docView上scrollViews內容大小https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIScrollView_Class/#//apple_ref/occ/instp/UIScrollView/contentSize – NSGangster

回答

1

可以使用平移手勢來完成,並且通過讓父ViewController(Container)和Child ViewController而不是UIView。讓我知道如果你需要更多的幫助:)

+0

我設法做到這一點與UIView。你爲什麼喜歡容器?我很想知道更多! – Mattias

+0

我現在在一個應用程序中使用了一種相同的功能。我更喜歡容器視圖控制器方法,因爲通過這種方式,您可以將主視圖邏輯(此處爲Map)和視圖拉起來。它更可重用:) – sanjana

+0

我試過你的方式,它工作正常。不過,現在我將容器的垂直間距設置爲「頂部佈局指南」約束,以使視圖捕捉到。這種方法是正派還是可怕?示例:僅當顯示頂部詳細視圖時,我將約束設置爲屏幕大小 - topView.frame.height。 – Mattias

1

用UIView和UIGestureRecognizer,它會更快,更簡單。 Modal segue不會覆蓋整個頁面,並且容器視圖的工作量太大,無法放在簡單的東西上