原谅我拙略的英文
鉴于很多朋友在提 issue 的时候没有提供足够的信息,在此希望大家在提 issue 时能够包含下面信息:
1. Xcode / iOS / WMPageController 的版本信息;
2. 编译错误或者运行时错误时,编译器提供的所有信息;
3. 你设置的关键的代码片段; (如果能够提供 demo 复现那就更好了,我就是懒-。-)
4. 其他任何你觉得有可能帮助的信息;
以上信息会更好的帮助我改善这个项目(不要再提为什么我的xxx方法没用这样的问题了,没有信息我真的做不出判断😭)。 如果你有什么好的建议或者修改,非常欢迎提出 issue 或者直接发起 Pull request. 任何改进都非常欢迎:bug 修复, 拼写错误或者用词语法错误, 以及文档补充以及特性需求等等。期待你的贡献!
itemMargin
和itemsMargins
来定制顶部标题的间距,通过viewFrame
来定制子控制器的frame
属性。item
添加间隙。frame
。itemsWidths
属性来设置不同的标题宽度,例如 @[@(100),@(80),@(50).....]
;reload
功能,可以像网易新闻那样重新更新标题和控制器。WMMenuViewStyleSegmented
, 用于实现 #120
创建一个控制器继承自WMPageController
, 可以通过两种方式来初始化控制器
使用以下方法创建控制器:
- (instancetype)initWithViewControllerClasses:(NSArray *)classes
andTheirTitles:(NSArray *)titles;
其中,Classes
是要传人显示的控制器的类型,比如[UITableViewController class]
, titles
是要显示的控制对应的标题。
使用方法和 UITableView 相似,在子类中实现以下数据源方法即可:
- (NSInteger)numbersOfChildControllersInPageController:(WMPageController *)pageController;
- (__kindof UIViewController *)pageController:(WMPageController *)pageController viewControllerAtIndex:(NSInteger)index;
- (NSString *)pageController:(WMPageController *)pageController titleAtIndex:(NSInteger)index;
1.如果用了 -initWithViewControllerClasses: andTheirTitles: 来初始化, 那么需要重写子控制器(子控制器是指你添加到 WMPageController 的控制器)的 -init
方法,例如:
- (instancetype)init {
return [self initWithNibName:@"xxxViewController" bundle:nil];
}
2.如果使用 datasource,那么实现对应的数据源即可,例如:
- (UIViewController *)pageController:(WMPageController *)pageController viewControllerAtIndex:(NSInteger)index {
UIStoryboard *sb = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
UIViewController *vc = [sb instantiateViewControllerWithIdentifier:@"WMViewController"];
return vc;
}
现在有5种样式提供选择,可通过设置 xxxPageController.style = WMMenuViewStyleLine
来改变样式.
如果想要在 NavigationBar 上显示导航栏, 设置.showOnNavigationBar = YES
即可。
最新版本是2.4.0,相比较2.3.0有一些 API 接口改动,谨慎选择(可以更加自由的定义 menuView 和 contentView 的 frame)
pod 'WMPageController', ~> '2.4.0'
使用旧的稳定版本:
pod 'WMPageController', ~> '2.3.0'
1.如果你的控制器的位置或者大小出现了任何问题,试试设置下 viewFrame
这个属性可以帮助你自定义你的控制器大小及位置
2.如果需要传入 UICollectionViewController
, 需要重写 - init
方法,来为UICollectionViewController
提供一个 UICollectionViewLayout
。
方式如下:
- (instancetype)init {
// init layout here...
self = [self initWithCollectionViewLayout:layout];
if (self) {
// insert code here...
}
return self;
}
该项目使用 MIT
许可证,详情见 LICENSE
文件。
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )