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

NewsChannel(新聞頻道欄)

Ready

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

支持小紅點標識 && 懶加載 && 緩存 && 排序 && 增刪等。

一言不合就上效果圖

?

?
?

Function Description

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

GO

How to use

1. 個性化設置

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

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

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

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

  • 注:JhtChannelBarAndSlideViewConnectParamModel和JhtNewsChannelItemEditParamModel結構如下圖

    ?
    ?


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

/** 創(chuàng)建ChannelBarAndSliderView和排序刪除界面
 *  barAndSlideModel:用于設置sliderView和bar參數(shù)model(為了容錯,含有部分屬性默認值)
 *  itemEditModel:用于排序界面的參數(shù)設置(為了容錯,含有部分屬性默認值)
 *  channelArray:已經(jīng)添加的頻道數(shù)組 存儲JhtNewsChannelItemModel (必要參數(shù),并且是存儲JhtNewsChannelItemModel的數(shù)組)
 *  baseViewController:所處于的VC
 *  sortFView:排序界面放入的父view
 *  titleArray:所有的名字數(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;
/** 當前index下的VC */
- (UIViewController *)JhtTotalSlideView:(JhtTotalSlideView *)sender controllerAt:(NSInteger)index;

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

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

4. JhtChannelBarAndSlideViewConnect 方法

a. 判斷頻道欄尾部按鈕是否可以被點擊

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

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

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

5.修改SDK切圖資源

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

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

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

    ??3. 最后,感謝大家長久以來的支持!


GitHub主頁

CSDN Blog

Email:jinjob@icloud.com

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

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

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