代码库> 菜单> 易于扩展的分页控件XXPageViewController
易于扩展的分页控件XXPageViewController
关注
上传者:XiaolongYang 分类:菜单(Menu)
查看次数:4737 下载次数:686
上传时间:2015-05-20 大小:96 B
最近需要做类似网易新闻首页那种分页的控件,在code4app上找了一些code看了看,虽然实现了功能,但是使用方式和代码结构不是太满意,于是自己写了一个demo。可以左右滑动切换页面。
写的匆忙没有做太多的稳定测试,但是自我感觉比较容易使用和功能扩展,有兴趣的盆友可以下载使用。
目前只支持ARC!

//Number of pages
typedef NSUInteger(^NumberOfPagesBlock)(void);
//Content view controller at specified index
typedef UIViewController*(^ViewControllerAtIndexBlock)(NSUInteger index);
//Title for bar item at specified index
typedef NSString*(^TitleForPageAtIndexBlock)(NSUInteger index);


@interface XXPageViewController : UIViewController

@property(nonatomic, strong) NSMutableArray *subviewControllers;
@property(nonatomic, assign) NSInteger selectedIndex;
// Datasource related blocks
@property(nonatomic, copy) NumberOfPagesBlock block_numberOfPages;
@property(nonatomic, copy) ViewControllerAtIndexBlock block_viewControllerAtIndex;
@property(nonatomic, copy) TitleForPageAtIndexBlock block_titleForPageAtIndex;

- (void)reloadData;
@end

测试环境:Xcode 6.2,iOS 6.0以上

更新:
1.修复了边界滑动引起的crash
2.添加了一些修改UI样式的方法

// 页数
@property(nonatomic, copy) NSInteger(^block_numberOfPages)(void);
// 每一页对应的ViewController
@property(nonatomic, copy) UIViewController*(^block_viewControllerAtIndex)(NSUInteger index);
// 每一页name,显示在tab上
@property(nonatomic, copy) NSString*(^block_titleForPageAtIndex)(NSUInteger index);
// tab距离顶端的距离
@property(nonatomic, copy) CGFloat(^block_topInset)(void);
// 内容视图距离底部的距离
@property(nonatomic, copy) CGFloat(^block_bottomInset)(void);
// 每个tab item的width
@property(nonatomic, copy) CGFloat(^block_widthOfTitleItem)(void);
// tab的边color
@property(nonatomic, copy) UIColor*(^block_borderColorOfTabBar)(void);
// 当前选中的底线
@property(nonatomic, copy) UIColor*(^block_indicatorColorOfSelectedTabItem)(void);

收藏
我来说两句
发表评论
您还没有登录!请登录注册
所有评论(0
提示
sina weixin mail 回到顶部