【iOS_GitHub】新聞?lì)l道欄(網(wǎng)易新聞,新浪新聞,搜狐新聞,今日頭條,聚劃算,騰訊視頻,優(yōu)酷等類的頻道欄),支持小紅點(diǎn)標(biāo)識(shí) && 懶加載 && 緩存 && 排序 && 增刪等

NewsChannel(新聞?lì)l道欄)

Ready

新聞?lì)l道欄(網(wǎng)易新聞,新浪新聞,搜狐新聞,今日頭條,聚劃算,騰訊視頻,優(yōu)酷等類似的頻道欄)

支持小紅點(diǎn)標(biāo)識(shí) && 懶加載 && 緩存 && 排序 && 增刪等。

一言不合就上效果圖

?

?
?

Function Description

  1. 單個(gè)頻道小紅點(diǎn)標(biāo)識(shí):JhtNewsChannelItemModel中isShowRedPoint為BOOL值,在生成頻道欄數(shù)據(jù)Model時(shí)可以一起添加頻道是否有小紅點(diǎn)標(biāo)識(shí),在后續(xù)調(diào)接口設(shè)置小紅點(diǎn)狀態(tài)依舊照前述可以實(shí)現(xiàn);
  2. 懶加載:頁(yè)面不會(huì)全部加載(非scrollview),點(diǎn)擊或者滑動(dòng)到哪里加載相應(yīng)頁(yè)面,同時(shí)可以自己設(shè)置緩存的個(gè)數(shù);
  3. 頻道位置固定:可以設(shè)置單個(gè)或多個(gè)頻道位置不可變動(dòng);
  4. 頻道欄排序:可以在排序界面進(jìn)行自定義排序(會(huì)有顫抖提示);
  5. 頻道增刪:可以在排序界面進(jìn)行自定義的增刪頻道,同時(shí)囊括排序功能;
  6. 說(shuō)明:排序或者增刪之后的相應(yīng)頁(yè)面均可在緩存中找到!

GO

How to use

1. 個(gè)性化設(shè)置

a. JhtNewsChannelItemModel:頂部頻道Model,你可以繼承這個(gè)model,來(lái)擴(kuò)展?jié)M足自己需求的model;

?b. JhtChannelBarAndSlideViewConnectParamModel:用于切換頻道欄界面中相關(guān)設(shè)置參數(shù)model,包含尾部加號(hào)按鈕 && 顏色和字號(hào) && 間距和坐標(biāo) && 緩存頁(yè)數(shù) 等相關(guān)設(shè)置;

?c. JhtChannelBarAndSlideViewConnectParamModel中的屬性notMoveNameArray(不能移動(dòng)頻道的名字?jǐn)?shù)組)設(shè)置頻道位置固定, toAddItemArray(用于存儲(chǔ)JhtNewsChannelItemModel)屬性用于設(shè)置待添加的頻道數(shù)組;

?d. JhtNewsChannelItemEditParamModel:用于排序界面中相關(guān)設(shè)置參數(shù)model,包含文字 && 文字顏色 && 距離 && 背景顏色 類等相關(guān)設(shè)置。

  • 注:JhtChannelBarAndSlideViewConnectParamModel和JhtNewsChannelItemEditParamModel結(jié)構(gòu)如下圖

    ?
    ?


2. 建立滑頻道條和可滑動(dòng)的view:相關(guān)個(gè)性化設(shè)置均由傳遞的Model中參數(shù)實(shí)現(xiàn)

/** 創(chuàng)建ChannelBarAndSliderView和排序刪除界面
 *  barAndSlideModel:用于設(shè)置sliderView和bar參數(shù)model(為了容錯(cuò),含有部分屬性默認(rèn)值)
 *  itemEditModel:用于排序界面的參數(shù)設(shè)置(為了容錯(cuò),含有部分屬性默認(rèn)值)
 *  channelArray:已經(jīng)添加的頻道數(shù)組 存儲(chǔ)JhtNewsChannelItemModel (必要參數(shù),并且是存儲(chǔ)JhtNewsChannelItemModel的數(shù)組)
 *  baseViewController:所處于的VC
 *  sortFView:排序界面放入的父view
 *  titleArray:所有的名字?jǐn)?shù)組
 *  delegate:代理
 */
- (id)initSlideViewAndItemEditViewWithBarAndSlideModel:(JhtChannelBarAndSlideViewConnectParamModel *)barAndSlideModel withNewsChannelItemEditModel:(JhtNewsChannelItemEditParamModel *)itemEditModel withChanelArray:(NSMutableArray *)channelArray withBaseViewController:(id)baseViewController withSortFView:(UIView *)sortFView withTitleArray:(NSArray *)titleArray withDelegte:(id<JhtTotalSlideViewDelegate>)delegate;

3. JhtTotalSlideViewDelegate 方法

@protocol JhtTotalSlideViewDelegate <NSObject>
/** VC總數(shù)量 */
- (NSInteger)numberOfTabsInJhtTotalSlideView:(JhtTotalSlideView *)sender;
/** 當(dāng)前index下的VC */
- (UIViewController *)JhtTotalSlideView:(JhtTotalSlideView *)sender controllerAt:(NSInteger)index;

/** 點(diǎn)擊VC的index */
- (void)JhtTotalSlideView:(JhtTotalSlideView *)sender didSelectedAt:(NSInteger)index;

/** 排序之后的操作
 *  modelArr:model數(shù)組
 *  nameArray:名字?jǐn)?shù)組
 *  selectedIndex:選中的index
 */
- (void)JhtTotalSlideViewWithSortModelArr:(NSArray *)modelArr withNameArray:(NSArray *)nameArray withSelectIndex:(NSInteger)selectedIndex;

4. JhtChannelBarAndSlideViewConnect 方法

a. 判斷頻道欄尾部按鈕是否可以被點(diǎn)擊

/** 判斷頻道欄尾部按鈕是否可以被點(diǎn)擊
 *  enable:yes可以被點(diǎn)擊 
 */
- (void)judgeChannelBarTailBtnIsEnableClick:(BOOL)enable;

b. 隱藏或者出現(xiàn)小紅點(diǎn)

/** 隱藏或者出現(xiàn)小紅點(diǎn)
 *  hidden:yes隱藏
 *  index:topBar 中頻道欄的index
 */
- (void)redPonitIsHidden:(BOOL)hidden withIndex:(NSInteger)index;

5.修改SDK切圖資源

如需替換SDK中的切圖資源可以直接將JhtNewsChannelImages.bundle中的切圖同名替換即可

  • 注:1. 對(duì)一些用戶反饋的緩存疑惑統(tǒng)一解釋一下,上面提到的緩存指的是,創(chuàng)建頻道下的VC后且app未重啟的情況下,進(jìn)行頻道編輯后,內(nèi)部會(huì)優(yōu)先使用之前創(chuàng)建的VC,假使不存在會(huì)重新創(chuàng)建新VC

    ??2. 假使你想做頻道編輯后的持久化存儲(chǔ)可以在以下方法中實(shí)現(xiàn)

    ??3. 最后,感謝大家長(zhǎng)久以來(lái)的支持!


GitHub主頁(yè)

CSDN Blog

Email:jinjob@icloud.com

最后編輯于
?著作權(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)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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