iOS分頁控制器:XBScrollPageController

jopen 9年前發布 | 24K 次閱讀 iOS開發 移動開發 XBScrollPageController

XBScrollPageController

iOS分頁控制器,只需傳入標題數組和控制器類名數組即可.

V1.2版本說明

根據需求增加了支持參數傳遞的刷新功能,Demo已更新

特性

  • 直接繼承XBScrollPageController控制器即可,所有屬性及方法可通過點語法調用
  • 增加了控制器緩存,并可自定義緩存時間,一段時間內未被重新展示的標簽對應的控制器將被銷毀(詳見屬性說明)

實現效果圖如下:

效果圖

使用方法

  1. 在項目中導入XBScrollPageController文件夾(包含MVC,及常量定義文件).

  2. 自定義一個控制器繼承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組后需要更新界面.

項目主頁:http://www.baiduhome.net/lib/view/home/1441957628680

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!