需求:根视图顶部有三个按钮,点击按钮展示不同的界面。 底层一个scrollView,滑动scrollView展示不同的界面。
按钮和scrollView配合工作 (你懂得)
方法(自认为比较好,一个简单的Demo):
步骤:
1) 创建一个根视图控制器RootViewController,用于展示这三个之间的变换
2) 创建三个子试图控制器,用于分别展示各自的视图。 SecondViewController , ThirdViewController , fourthViewController
3) RootViewController中的代码如下:
#import "RootViewController.h"
#import "SecondViewController.h"
#import "ThirdViewController.h"
#import "fourthViewController.h"
#define KScreenHeight [UIScreen mainScreen].bounds.size.height
@interfaceRootViewController()<UIScrollViewDelegate>
{
UIScrollView *_scrollView;
UIButton *selectBtn;
}
@end
@implementation RootViewController
- (void)viewDidLoad
{
NSArray *nameArray = [NSArrayarrayWithObjects:@"机经题库",@"历年考题",@"TPO题库",nil];
for(int i=0;i<3;i++)
{
UIButton *btn = [UIButtonbuttonWithType:UIButtonTypeCustom];
btn.frame =CGRectMake(40+i*80,20,80, 30);
[btn setTitle:[nameArrayobjectAtIndex:i]forState:UIControlStateNormal];
[btn setTitleColor:[UIColorblackColor]forState:UIControlStateNormal];
[btn setTitleColor:[UIColorredColor]forState:UIControlStateSelected];
btn.tag =200+i;
if(i==0)
{
btn.selected =YES;
selectBtn = btn;
}
[btn addTarget:selfaction:@selector(btnAction:)forControlEvents:UIControlEventTouchUpInside];
[self.viewaddSubview:btn];
}
_scrollView = [[UIScrollViewalloc]initWithFrame:CGRectMake(0,70,320,KScreenHeight-64-70)];
_scrollView.contentSize =CGSizeMake(320*3,KScreenHeight -64 -70);
_scrollView.delegate=self;
_scrollView.pagingEnabled =YES;
[self.viewaddSubview:_scrollView];
SecondViewController *secondCtrl = [[SecondViewControlleralloc]init];
secondCtrl.view.frame =CGRectMake(0,0,320, KScreenHeight-64-70);
[selfaddChildViewController:secondCtrl];
ThirdViewController *thirdCtrl = [[ThirdViewControlleralloc]init];
thirdCtrl.view.frame =CGRectMake(320,0, 320, KScreenHeight-64-70);
[selfaddChildViewController:thirdCtrl];
fourthViewController *fourthCtrl = [[fourthViewControlleralloc]init];
fourthCtrl.view.frame =CGRectMake(640,0, 320, KScreenHeight-64-70);
[selfaddChildViewController:fourthCtrl];
[_scrollViewaddSubview:secondCtrl.view];
[_scrollViewaddSubview:thirdCtrl.view];
[_scrollViewaddSubview:fourthCtrl.view];
}
#pragma mark- UIScrollViewDelegate
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
int tag = scrollView.contentOffset.x/320;
UIButton *btn = (UIButton *)[self.viewviewWithTag:tag+200];
[self btnAction:btn];
}
- (void)btnAction:(UIButton *)btn
{
if(selectBtn !=nil)
{
selectBtn.selected=NO;
}
btn.selected =YES;
selectBtn = btn;
[_scrollViewsetContentOffset:CGPointMake((btn.tag-200)*320,0)];
}
@end
如有错误,望指出,大家一起进步~~