NewsChannel(新聞頻道欄)
Ready
新聞頻道欄(網(wǎng)易新聞,新浪新聞,搜狐新聞,今日頭條,聚劃算,騰訊視頻,優(yōu)酷等類似的頻道欄)
支持小紅點標識 && 懶加載 && 緩存 && 排序 && 增刪等。
一言不合就上效果圖
?
Function Description
- 單個頻道小紅點標識:JhtNewsChannelItemModel中
isShowRedPoint為BOOL值,在生成頻道欄數(shù)據(jù)Model時可以一起添加頻道是否有小紅點標識,在后續(xù)調接口設置小紅點狀態(tài)依舊照前述可以實現(xiàn); - 懶加載:頁面不會全部加載(非scrollview),點擊或者滑動到哪里加載相應頁面,同時可以自己設置緩存的個數(shù);
- 頻道位置固定:可以設置單個或多個頻道位置不可變動;
- 頻道欄排序:可以在排序界面進行自定義排序(會有顫抖提示);
- 頻道增刪:可以在排序界面進行自定義的增刪頻道,同時囊括排序功能;
- 說明:排序或者增刪之后的相應頁面均可在緩存中找到!
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. 最后,感謝大家長久以來的支持!