分頁(yè)菜單SPPageMenu使用說(shuō)明書(shū)

SPPageMenugithub地址:https://github.com/SPStore/SPPageMenu

一、cocopods導(dǎo)入

platform:ios,'8.0'
target 'MyApp' do
  pod 'SPPageMenu', '~> 3.5.0'
end

二、 效果演示圖

(演示圖中僅展示了部分功能,更多功能請(qǐng)進(jìn)入github下載源代碼,如果您的網(wǎng)絡(luò)較慢,gif圖可能會(huì)延遲加載,您可以先把寶貴的時(shí)間瀏覽其它信息)

Untitled.gif

三、 重難點(diǎn)方法和屬性詳解

// 這個(gè)方法用于傳遞數(shù)據(jù),items里面可以是NSString、UIImage 或SPPageMenuButtonItem類型,每個(gè)item會(huì)根據(jù)傳的元素類型自動(dòng)展示你要的內(nèi)容;selectedItemIndex是選中的item下標(biāo),selectedItemIndex不可超過(guò) items的范圍
- (void)setItems:(nullable NSArray *)items selectedItemIndex:(NSUInteger)selectedItemIndex;
A46F678B-C330-4971-993B-C2AA048C98A6.jpeg
//  這個(gè)屬性命名為“橋梁scrollView”,當(dāng)外界的scrollView在左右切換的時(shí)候,需要讓跟蹤器時(shí)刻跟隨該scrollView滾動(dòng),bridgeScrollView就是外界左右切換的scrollView。只要bridgeScrollView有值了,SPPageMenu會(huì)監(jiān)聽(tīng)bridgeScrollView的滾動(dòng)狀態(tài),從而讓跟蹤器有跟隨效果。如果你忘了設(shè)置這個(gè)屬性或者覺(jué)得不好,你還可以在scrollViewDidScroll的代理方法中,調(diào)用SPPageMenu的接口“- (void)moveTrackerFollowScrollView:(UIScrollView *)scrollView”。
@property (nonatomic, strong) UIScrollView *bridgeScrollView;
// 排列方式:支持3種排列方式;1、可滑動(dòng),按鈕寬度根據(jù)內(nèi)容自適應(yīng);2、不可滑動(dòng),按鈕等寬;3、不可滑動(dòng),按鈕寬度根據(jù)內(nèi)容自適應(yīng)。3種排列方式都有非常高的使用頻率。第1種排列方式:SPPageMene的容量會(huì)根據(jù)按鈕個(gè)數(shù)而定;第2種和第3種排列方式:SPPageMenu的容量固定為SPPageMenu的寬度
@property (nonatomic, assign) SPPageMenuPermutationWay permutationWay; 
  • 排列方式一:SPPageMenuPermutationWayScrollAdaptContent


    5ADC4C3A2C55E428CB93E627108AD19B.jpg
  • 排列方式二:SPPageMenuPermutationWayNotScrollEqualWidths


    795A7E94AB1D002B026A7EB346599CE5.jpg
  • 排列方式三:SPPageMenuPermutationWayNotScrollAdaptContent


    C3EEA99CD066F43DD5CCAEBCBD0D8C76.jpg
// 跟蹤器跟蹤模式;這個(gè)屬性從3.4版本開(kāi)始閃亮登場(chǎng)。該屬性是個(gè)枚舉,共3個(gè):1、SPPageMenuTrackerFollowingModeAlways,這個(gè)枚舉值的意思是讓跟蹤器時(shí)刻跟隨外界scrollView(即bridgeScrollView)橫向移動(dòng); 2、SPPageMenuTrackerFollowingModeEnd,這個(gè)枚舉的意思是當(dāng)外界scrollView滑動(dòng)結(jié)束時(shí),跟蹤器才開(kāi)始移動(dòng);相當(dāng)于3.4版本之前的closeTrackerFollowingMode屬性 3、SPPageMenuTrackerFollowingModeHalf,這個(gè)枚舉的意思是當(dāng)外界scrollView拖動(dòng)距離超過(guò)屏幕一半時(shí),跟蹤器開(kāi)始移動(dòng)。
@property (nonatomic, assign) SPPageMenuTrackerFollowingMode trackerFollowingMode;

請(qǐng)大家仔細(xì)觀察跟蹤器(按鈕下面的下劃線)開(kāi)始移動(dòng)的時(shí)刻

  • 跟蹤模式一:SPPageMenuTrackerFollowingModeAlways


    always.gif
  • 跟蹤模式二:SPPageMenuTrackerFollowingModeEnd


    end.gif
  • 跟蹤模式三:SPPageMenuTrackerFollowingModeHalf


    half.gif
//  這個(gè)屬性是設(shè)置內(nèi)容的四周邊距,例如如果你想讓跟蹤器距離底部分割線有一段距離,你就可以設(shè)置contentInset的底部間距,這里指的內(nèi)容是不包括底部分割線的。
@property (nonatomic, assign) UIEdgeInsets contentInset;

下面截圖是設(shè)置pageMenu.contentInset = UIEdgeInsetsMake(0, 50, 0, 50)的結(jié)果,綠色為SPPageMenu的背景色,黃色部分是內(nèi)容

1391991C798B9E6DA6345401EE03A227.jpg

// // 設(shè)置指定item的四周內(nèi)邊距,這和上面那個(gè)屬性不一樣,上面的屬性contentInset作用對(duì)象是SPPageMenu整個(gè)控件,而這個(gè)方式作用對(duì)象是SPPageMenu里的一個(gè)按鈕
- (void)setContentEdgeInsets:(UIEdgeInsets)contentEdgeInsets forItemAtIndex:(NSUInteger)itemIndex;
//  這個(gè)方法在描述bridgeScrollView的時(shí)候有提到過(guò),在外界的scrollViewDidScroll代理方法中調(diào)用,可以讓跟蹤器時(shí)刻跟隨scrollView滑動(dòng),如果bridgeScrollView已經(jīng)賦過(guò)值,那這個(gè)方法就沒(méi)必要去調(diào)用了。
- (void)moveTrackerFollowScrollView:(UIScrollView *)scrollView;
以上介紹的屬性和方法只是部分的,其余屬性和方法相對(duì)簡(jiǎn)單,框架中也有非常詳細(xì)的注釋,這里就不再多做介紹

四、 適用場(chǎng)景

網(wǎng)易新聞

A7FD723F-E458-437A-AD3F-D990C8F49C26.jpeg

愛(ài)奇藝

09145AB7-9FA8-4442-8E66-28A5D02EB4A6.jpeg

微博

8D4F4543-97C8-43AB-A6ED-152ACC35429D.jpeg

淘寶

8663770C-5DB5-4100-B53D-870B3E007CE8.jpeg
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,048評(píng)論 25 709
  • 經(jīng)過(guò)時(shí)間的焠煉,很怕當(dāng)我們老去時(shí),彼此陷入相守不相知,無(wú)話可說(shuō)的境地。
    赳赳嘚小象閱讀 99評(píng)論 0 0
  • 其實(shí)只要為按鈕自定義一個(gè)類,重寫(xiě)下面的幾個(gè)方法即可,具體要調(diào)到什么位置都可以自己在返回CGRectMake中調(diào)整,...
    不瘋魔難以成佛閱讀 657評(píng)論 0 0
  • 迷迷糊糊的背了一天,還好吧這感覺(jué)。 果然有的事注定是你的就一定逃不掉,比如看見(jiàn)柳方舟那可真真是三次??!比如看群里的...
    大象大象你別躲閱讀 221評(píng)論 0 0
  • 朝九晚五的生活是職場(chǎng)里的人所向往的,然而當(dāng)自己朝九晚五的時(shí)候,我只有一個(gè)感覺(jué),那就是,好累啊。 我每天去培訓(xùn)的動(dòng)力...
    小小霸王君閱讀 322評(píng)論 0 0

友情鏈接更多精彩內(nèi)容