shelfmagnetic
Shelfmagnetic架构是多年开发经验的结合
背景
在开发过程中,您会遇到一个显示各种不同风格内容或动态显示某个部分的页面。如果将它们放入VC中,那么VC将会非常臃肿且不便管理。然后这个框架就出现了,用来解决这个问题。该框架包括多页面集成匹配、网络请求、数据追踪点、异步UI渲染等。易于使用,只需使用VC继承。
使用CocoaPods安装
要使用CocoaPods将Shelfmagnetic集成到您的Xcode项目中,请在Podfile中指定它:pod 'Shelfmagnetic', '~> 0.1.0'
架构
- 模型
- MagneticContext
- 视图
- MagneticTableView
- MagneticErrorCell
- JEBaseLoadingView
- MagneticTableFooterView
- JEBaseEmptyView
- 控制器
- MagneticController
- MagneticsController
- MagneticsControllerProtocol
图片
用法
-
注册控制器
- MagneticContext.h
typedef NS_ENUM(NSInteger, MagneticType) { MagneticTypeDemo = 1000, };
- MagneticContext.m
- (NSString *)parseClassName:(MagneticType)type { NSString *className = nil; switch (type) { case MagneticTypeNormal: className = @"MagneticTypeDemo"; break; default: break; } return className; }
-
ViewController继承自MagneticController并实现了一些功能。可以包含多个MagneticDemoController。
- ViewController
@interface ViewController : MagneticsController NSMutableArray *dataArr = [NSMutableArray array]; MagneticContext *context = [[MagneticContext alloc]init]; context.type = MagneticTypeDemo; [dataArr addObject:context]; /** dataArr add more VC */ [self requestMagneticsDidSucceedWithMagneticsArray:dataArr];
-
MagneticDemoController继承自MagneticController并实现了一些功能。
- MagneticDemoController
- (void)didFinishInitConfigurationInCardsController:(CardsController *)cardsController { // After completing initial monitoring, data processing, and successful interface request } - (NSString *)magneticRequestURLInMagneticsController:(MagneticsController *)magneticsController{ //Request url, asynchronous request must be implemented return @"https://github.com/jenson21/shelfmagnetic"; } - (NSDictionary *)magneticRequestParametersInMagneticsController:(MagneticsController *)magneticsController{ //Requested parameters return nil; }
联系
许可协议
Shelfmagnetic遵循MIT许可协议发布。详细信息请参阅LICENSE。