iOS分頁控制器:XBScrollPageController
XBScrollPageController
iOS分頁控制器,只需傳入標題數組和控制器類名數組即可.
V1.2版本說明
根據需求增加了支持參數傳遞的刷新功能,Demo已更新
特性
- 直接繼承XBScrollPageController控制器即可,所有屬性及方法可通過點語法調用
- 增加了控制器緩存,并可自定義緩存時間,一段時間內未被重新展示的標簽對應的控制器將被銷毀(詳見屬性說明)
實現效果圖如下:
使用方法
-
在項目中導入XBScrollPageController文件夾(包含MVC,及常量定義文件).
-
自定義一個控制器繼承XBScrollPageController:
@interface ViewController : XBScrollPageController @end
3.重載自定義控制器的init方法(從代碼和xib,SB創建的init方法不一樣,請注意):
//代碼創建 - (instancetype)init { NSArray *titleArray = @[@"All cars", @"Audi", @"Bitter", @"BMW", @"Büssing", @"Gumpert", @"MAN", @"Mercedes-BenzMercedes-BenzMercedes-BenzMercedes-Benz", @"Multicar", @"Neoplan", @"NSU", @"Opel", @"Porsche", @"Robur", @"Volkswagen", @"Wiesmann"]; NSArray *classNames = @[@"TestViewController"]; self = [super initWithTitles:titleArray andSubViewdisplayClassNames:classNames andTagViewHeight:49]; if (self) { } return self; }
4.在之后的viewDidLoad中可以設置相關屬性,具體屬性說明參見下文說明或者查看頭文件,由于存在繼承關系,可以直接根據self點語法使用,部分示例如下:
self.tagItemSize = CGSizeMake(100, 49); self.selectedTitleColor = [UIColor blueColor]; self.graceTime = 300;
部分屬性方法說明
字體及顏色
-
normalTitleFont: 正常(非選中)標簽字體 default is 13,
-
selectedTitleFont: 選中狀態標簽字體 default is 18,
-
normalTitleColor: 正常(非選中)標簽字體顏色 default is darkGrayColor,
- selectedTitleColor: 選中狀態標簽字體顏色及下方滑塊顏色 default is redColor,
-
tagItemSectionInset: 每個tag標簽的縮進,不設置的話選中狀態可能會導致文字顯示不全... default is UIEdgeInsetsMake(0, 10, 0, 10),如果設置了tagItemSize屬性則該屬性失效
-
tagItemSize: 每個tag標簽的size,如果不設置則會根據文本長度計算,設置該屬性后tagItemSectionInset失效
-
graceTime:控制器緩存時間,如果在該段時間內緩存的控制器依舊沒有被展示,則會從內存中銷毀,默認不設置,即默認在內存中緩存所有展示過的控制器
- backgroundColor: 標簽展示的背景色
public方法:
- scrollToTagByIndex:(NSInteger)index: 根據索引值設置滾動到某個tag,注意索引值不要超過初始化時設置的tag數組長度,否則會造成數組越界崩潰
- reloadDataWith:(NSArray *)titleArray andSubViewdisplayClassNames:(NSArray *)classNames: 刷新整個界面,提供給某些應用場景比如從服務器獲取tag組后需要更新界面.
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!