包含完全可运行的示例;Objective-C 和 Swift 都有;如果想要亲自试一试,只需下载/检出这个存储库,并首先从示例目录中运行代码
在 Objective-C 中使用 #import <SHViewPager/SHViewPagerModule.h>
和 Swift 中的 import SHViewPager
来使用 SHViewPager。
SHViewPager 需要实现其 datasource
和 delegate
协议。简单从代码中初始化,或者更好的
方法 1
UIView
到您的 UIViewController
中。SHViewPager
,然后datasource
、delegate
和您的 IBOutlet
属性。方法 2
UIViewController
从 Storyboard 拖动到项目中。SHViewPagerController
需要四个 数据源
方法,其余方法为可选项。
Objective-C:所需的数据源方法有
- (NSInteger)numberOfPagesInViewPager:(SHViewPager *)viewPager;
- (UIViewController *)containerControllerForViewPager:(SHViewPager *)viewPager;
- (UIViewController *)viewPager:(SHViewPager *)viewPager controllerForPageAtIndex:(NSInteger)index;
和
- (NSString *)viewPager:(SHViewPager *)viewPager titleForPageMenuAtIndex:(NSInteger)index;
或
- (UIImage *)viewPager:(SHViewPager *)viewPager imageForPageMenuAtIndex:(NSInteger)index;
Swift:所需的数据源方法有
func numberOfPages(in viewPager: SHViewPager) -> Int
func containerController(for viewPager: SHViewPager) -> UIViewController
func viewPager(_ viewPager: SHViewPager, controllerForPageAt index: Int) -> UIViewController
和
func viewPager(_ viewPager: SHViewPager, titleForPageMenuAt index: Int) -> String
或
func viewPager(_ viewPager: SHViewPager, imageForPageMenuAt index: Int) -> UIImage
要显示内容,您需要在所需的方法块中调用实例方法 reloadData
;通常在 viewDidLoad
中;以及在 viewWillLayoutSubviews
中的 pagerWillLayoutSubviews
。
示例
Objective-C
- (void)viewDidLoad {
[super viewDidLoad];
// your code
[viewPager reloadData];
}
-(void)viewWillLayoutSubviews {
[super viewWillLayoutSubviews];
[_pager pagerWillLayoutSubviews];
}
Swift
override func viewDidLoad() {
super.viewDidLoad()
// your code
pager.reloadData()
}
override func viewWillLayoutSubviews() {
super.viewWillLayoutSubviews()
pager.pagerWillLayoutSubviews()
}
请参阅公开问题列表。
由 Ahmad Shabibul Hossain 创建,@shabib_hossain 在 5/15/14。
分享反馈和建议以改进此项目,我很愿意听取。您也可以关注我,@shabib_hossain。
SHViewPager 在 MIT 许可证下可用。有关更多信息,请参阅 LICENSE 文件。