開源框架的使用介紹
關于VTMagic的集成方法主要有以下兩種:
1. 直接實例化VTMagicController對象,然后添加到當前控制器中。
- (void)viewDidLoad { [super viewDidLoad]; [self addChildViewController:self.magicController]; [self.view addSubview:_magicController.view]; [_magicController didMoveToParentViewController:self]; [_magicController.magicView reloadData]; } - (VTMagicController *)magicController { if (!_magicController) { _magicController = [[VTMagicController alloc] init]; _magicController.magicView.navigationColor = [UIColor whiteColor]; _magicController.magicView.sliderColor = [UIColor redColor]; _magicController.magicView.layoutStyle = VTLayoutStyleDivide; _magicController.magicView.switchStyle = VTSwitchStyleDefault; _magicController.magicView.navigationHeight = 40.f; _magicController.magicView.dataSource = self; _magicController.magicView.delegate = self; } return _magicController; }
2. 繼承VTMagicController,然后在viewDidLoad中完成相應配置。
#import “VTMagicController.h” @interface ViewController : VTMagicController @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; self.magicView.navigationColor = [UIColor whiteColor]; self.magicView.sliderColor = [UIColor redColor]; self.magicView.layoutStyle = VTLayoutStyleDefault; self.magicView.switchStyle = VTSwitchStyleDefault; self.magicView.navigationHeight = 40.f; self.magicView.dataSource = self; self.magicView.delegate = self; [self.magicView reloadData]; }
VTMagicViewDataSource協(xié)議
不管是通過以上哪種方法集成的,都需要實現(xiàn)數(shù)據(jù)源協(xié)議《 VTMagicViewDataSource 》,主要有以下三個方法:

其它
重要協(xié)議
除了數(shù)據(jù)源協(xié)議《 VTMagicViewDataSource 》外 ,VTMagic中的重要協(xié)議還有《 VTMagicViewDelegate 》和《 VTMagicReuseProtocol 》。前者用于在主控制器中處理頁面切換事件;后者用于子控制器被重用時,清除舊數(shù)據(jù)等邏輯處理。
VTMagicViewDelegate協(xié)議
- (void)magicView:(VTMagicView *)magicView viewDidAppeare:(UIViewController *)viewController atPage:(NSUInteger)pageIndex { NSLog(@“pageIndex:%ld viewDidAppeare:%@”,pageIndex, viewController.view); } - (void)magicView:(VTMagicView *)magicView viewDidDisappeare:(UIViewController *)viewController atPage:(NSUInteger)pageIndex { NSLog(@“pageIndex:%ld viewDidDisappeare:%@”,pageIndex, viewController.view); } - (void)magicView:(VTMagicView *)magicView didSelectItemAtIndex:(NSUInteger)itemIndex { NSLog(@“didSelectItemAtIndex:%ld”, (long)itemIndex); }
VTMagicReuseProtocol
- (void)vtm_prepareForReuse { NSLog(@“clear old data if needed:%@”, self); }
其它
你可以在任意子控制器中,通過self.magicController獲取最近的上層主控制器,magicController遵循協(xié)議《 VTMagicProtocol 》,以便完成一些必要的跨層級的邏輯處理,前提是你需要import文件。
NSInteger currentPage = self.magicController.currentPage; UIViewController *viewController = self.magicController.currentViewController;
切換到指定頁面,頁面切換有兩種方式:
?。踫elf.magicView switchToPage:3 animated:YES];
或者
?。踫elf.magicController switchToPage:3 animated:YES];
獲取指定頁面控制器,同樣有兩種方式:
UIViewController *viewController = [self.magicView viewControllerAtPage:3];
或者
UIViewController *viewController = [self.magicController viewControllerAtPage:3];
非常好我支持^.^
(0) 0%
不好我反對
(0) 0%
