iOS开发之UISegmentedControl实现分页切换
2016-05-26 11:44
597 查看
在我们做应用开发的时候,难免会需要那种切换的效果,如果直接下载三方库,可能你没有自己写的理解的那么透彻,所以这里我介绍一下如何用UISegmentedControl进行切换。 有三个view,分别为view1、view2、view3,通过UISegmentedControl进行三个view的切换。 @interface UIViewDemoViewController : UIViewController { IBOutlet UIView *view1; IBOutlet UIView *view2; IBOutlet UIView *view3; } - (IBAction)switchViews:(id)sender; @end @interface UIViewDemoViewController : UIViewController { IBOutlet UIView *view1; IBOutlet UIView *view2; IBOutlet UIView *view3; } - (IBAction)switchViews:(id)sender; @end 在Interface Builder中分别建立三个view,关联到各自的输出口,每个view上的UISegmentedControl关联到switchViews:操作。 - (void)viewDidLoad { [super viewDidLoad]; [self.view addSubview:view1]; [self.view addSubview:view2]; [self.view addSubview:view3]; } - (IBAction)switchViews:(id)sender{ UISegmentedControl *segmentedControl = sender; [[NSNotificationCenter defaultCenter] postNotificationName:@"switchViews" object:[NSNumber numberWithInteger:[segmentedControl selectedSegmentIndex]]]; } - (void)viewDidLoad { [super viewDidLoad]; [self.view addSubview:view1]; [self.view addSubview:view2]; [self.view addSubview:view3]; } - (IBAction)switchViews:(id)sender{ UISegmentedControl *segmentedControl = sender; [[NSNotificationCenter defaultCenter] postNotificationName:@"switchViews" object:[NSNumber numberWithInteger:[segmentedControl selectedSegmentIndex]]]; } 接着,为UISegmentedControl控件建立一个处理类。 @interface SegmentedControl : UISegmentedControl { IBOutlet UIView *view1; IBOutlet UIView *view2; IBOutlet UIView *view3; IBOutlet UIViewDemoViewController* viewController; } @end @interface SegmentedControl : UISegmentedControl { IBOutlet UIView *view1; IBOutlet UIView *view2; IBOutlet UIView *view3; IBOutlet UIViewDemoViewController* viewController; } @end 将UISegmentedControl控件的Class改为刚创建的处理类:SegmentedControl,然后,将UISegmentedControl控件关联到四个输出口:view分别关联到刚创建的三个view上,viewController关联到File's Owner上。 - (void)awakeFromNib{ [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(switchViews:) name:@"switchViews" object:nil]; } - (void)switchViews:(NSNotification*)notification{ NSNumber *viewNumber = [notification object]; NSInteger i = [viewNumber integerValue]; [self setSelectedSegmentIndex:i]; UIView *chosenView = nil; switch (i) { case 0: chosenView = view1; break; case 1: chosenView = view2; break; case 2: chosenView = view3; break; default: break; } if (chosenView) { [[viewController view] bringSubviewToFront:chosenView]; } } - (void)dealloc{ [super dealloc]; [[NSNotificationCenter defaultCenter] removeObserver:self]; } - (void)awakeFromNib{ [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(switchViews:) name:@"switchViews" object:nil]; } - (void)switchViews:(NSNotification*)notification{ NSNumber *viewNumber = [notification object]; NSInteger i = [viewNumber integerValue]; [self setSelectedSegmentIndex:i]; UIView *chosenView = nil; switch (i) { case 0: chosenView = view1; break; case 1: chosenView = view2; break; case 2: chosenView = view3; break; default: break; } if (chosenView) { [[viewController view] bringSubviewToFront:chosenView]; } } - (void)dealloc{ [super dealloc]; [[NSNotificationCenter defaultCenter] removeObserver:self]; } 如果有问题,请大家指正交流,谢谢 |
相关文章推荐
- android gpuimage显示的缩放和剪裁模式
- iOS开发~UITableView区头跟随移动
- Vue.js-----轻量高效的MVVM框架(十、父子组件通信)
- serialVersionUID的作用
- Ansible批量快速初始化Bluemix 虚拟机
- execute、executeQuery和executeUpdate之间的区别
- 安装glue,用glue批量处理图片的步骤
- iOS开发之UIDevice等手机信息
- EasyUI DataGrid 根据ID选中行
- EasyUI Tree 树
- 关于AlertDialog.Builder的自定义
- 世界坐标转到UGUI坐标
- ios表视图之UITableViewCellAccessoryCheckmark单选、多选状态保存
- iOS开发之高级视图——UINavigationBar
- Amazon SQS(Simple Queue Service) 简介
- CodeForces675AInfinite Sequence
- java中String、StringBuffer、StringBuilder的区别
- 讲讲Handler+Looper+MessageQueue 关系
- SSH框架网上商城项目第3战之使用EasyUI搭建后台页面框架
- Simple ABAP - Create allowed values in a characteristic by BAPI_CHARACT_CREATE