您好,歡迎來(lái)電子發(fā)燒友網(wǎng)! ,新用戶?[免費(fèi)注冊(cè)]

您的位置:電子發(fā)燒友網(wǎng)>源碼下載>通訊/手機(jī)編程>

iOS 上怎么可以實(shí)現(xiàn)可展開(kāi)式菜單

大小:0.10 MB 人氣: 2017-09-25 需要積分:2

?

幾個(gè)月前,我有機(jī)會(huì)實(shí)現(xiàn)了一個(gè)可展開(kāi)式菜單,效果同知名iOS 應(yīng)用 Airbnb。然后,我認(rèn)為把它封裝為庫(kù)會(huì)更好?,F(xiàn)在我想和大家分享用于實(shí)現(xiàn)漂亮的滾動(dòng)驅(qū)動(dòng)動(dòng)畫(huà)采用的一些解決方案。

iOS 上怎么可以實(shí)現(xiàn)可展開(kāi)式菜單

此庫(kù)支持 3 個(gè)狀態(tài)。主要目的是在滾動(dòng) UIScrollView 時(shí)獲得流暢的轉(zhuǎn)換。

iOS 上怎么可以實(shí)現(xiàn)可展開(kāi)式菜單

支持的狀態(tài)

UIScrollView

UIScrollView是 iOS SDK 中的一個(gè)支持滾動(dòng)和縮放的視圖。它是 UITableView和UICollectionView的基類,因此,只要支持 UIScrollView,就可以使用它。

UIScrollView 使用 UIPanGestureRecognizer 在內(nèi)部檢測(cè)滾動(dòng)手勢(shì)。UIScrollView 的滾動(dòng)狀態(tài)被定義為 contentOffset: CGPoint 屬性。 可滾動(dòng)區(qū)域由 contentInsets 和 contentSize 聯(lián)合決定。 因此,起始的 contentOffset 為 *CGPoint(x: -contentInsets.left, y: -contentInsets.right)* ,結(jié)束值為 *CGPoint(x: contentSize.width?—?frame.width+contentInsets.right, y: contentSize.height?—?frame.height+contentInsets.bottom)*.

UIScrollView 有一個(gè) bounces: Bool 屬性。bounces 能夠避免設(shè)置 contentOffset 高于/低于限定值。我們需要記住這一點(diǎn)。

非常好我支持^.^

(0) 0%

不好我反對(duì)

(0) 0%

      發(fā)表評(píng)論

      用戶評(píng)論
      評(píng)價(jià):好評(píng)中評(píng)差評(píng)

      發(fā)表評(píng)論,獲取積分! 請(qǐng)遵守相關(guān)規(guī)定!

      ?