IOS学习笔记(8)UIPageViewController UIProgressView 监听和响应键盘通知
来源:互联网 发布:java微信扫码支付开发 编辑:程序博客网 时间:2024/06/11 01:58
使用UIPageViewController启用分页
新建程序:file--> new-->new project-->page-based Application模版-->next-->device Family (Universal)-->next-->create;
DataViewController 类 在页面视图控制器的每一个页面里都会提供这个类的一个实例给用户,这个类是UIViewController的一个子类。
ModelController 类 这仅仅是一个遵守UIPageViewControllerDataSource协议的一个NSObject的子类,这个类是页面视图控制器的数据资源类。
- (void)pageViewController:(UIPageViewController *)pageViewController didFinishAnimating:(BOOL)finished
previousViewControllers:(NSArray *)previousViewControllers transitionCompleted:(BOOL)completed;
当用户从一个页面转向下一个或者前一个页面,或者当用户开始从一个页面转向另一个页面的途中后悔了,并撤销返回到了之前的页面时,将会调用这个方法。假如成功跳转到另一个页面时,transitionCompleted会被置成 YES,假如在跳转途中取消了跳转这个动作将会被置成 NO。
- (UIPageViewControllerSpineLocation) pageViewController:(UIPageViewController *)pageViewController spineLocationForInterfaceOrientation:(UIInterfaceOrientation)orientation;
当设备的方向改变了将会调用这个方法。你可以使用这个方法通过返回 UIPageViewControllerSpinelocation类型的一个值来设定页面主键的位置:
enum {
UIPageViewControllerSpineLocationNone = 0, UIPageViewControllerSpineLocationMin = 1, UIPageViewControllerSpineLocationMid = 2, UIPageViewControllerSpineLocationMax = 3
};
typedef NSInteger UIPageViewControllerSpineLocation;
这个可能对于你来说有点复杂,让我来给你演示一下。假如我们使用一个UIpageViewControllerSpineLocationMin值,页面视图将只会提供一个视图给用户,当转向另一个新页面时将提供一个新页面给用户。但是,当我们给UIPageViewControllerSpineLocationMid设置书脊时,我们需要同时提供两个视图。一个在左边一个在右边,中间放置一个书脊。你可以看到一个页面视图控制器在水平模式下的例子,并设置了UIpageViewControllerSpineLocationMin的书脊。书脊被放置在两个视图控制器的中间。一旦用户将页面从右边翻向左边,这个页
面就停在了左边,而右边则显示一个新的视图控制器。整个逻辑关系都在下面的委托方法里,如下代码所示:
-(UIPageViewControllerSpineLocation) pageViewController:(UIPageViewController *)pageViewController spineLocationForInterfaceOrientation:(UIInterfaceOrientation)orientation;
我们现在讲了页面控制器的委托,那数据资源优势怎么一回事呢?一个页面视图控制器的数据资源必须遵守 UIPageViewControllerDataSource协议。在协议里的两个很重要的方法是:
- (UIViewController *)
pageViewController:(UIPageViewController *)pageViewController viewControllerBeforeViewController:(UIViewController *)viewController;
- (UIViewController *)
pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController;
当页面视图控制器已经有一个视图控制器在屏幕里并需要知道下一个即将要显示的视图控制器时将调用第 一个方法。当用户决定翻转下一个页面时将发生此事件。当这个视图正在翻转的同时页面视图控制器想要判断 哪一个视图控制器需要显示的时候将调用第二个方法。
使用UIProgressView显示进度条
@property(monatomic,strong)UIProgressView *progressView;
@synthesize progressView;
-(void)viewDidLoad{
[super viewDidLoad];
self.view.backgroundColor = [UIColor whiteColor];
self.progressView = [ [UIProgressView alloc]initWithProgressViewStyle:UIProgressViewStyleBar];
self.progressView.center = self.view.center;
self.progressView.progress = 0.5f;
[self.view addSubview:self.progressView];
}
-(void)viewDidUnload{
[super viewDidUnload];
self.progressView = nil;
}
创建一个进度视图是很简单的,所需要注意的就是能够正确的显示进度,因为进度视图的progress属性值必须是在 +0到1.0之间,假设你有30个任务需要被监控,而且已经完成了20个任务,你需要指定下面的方程来表示进展程度:
self.progressView.progress = 20.0f/30.0f;
注:此处必须使用浮点数,若用整形 20/30为0;
监听和响应键盘通知
UIKeyboardWillShowNotification //当键盘即将要显示的时候会发生这个通知,包含信息库。
UIKeyboardDidShowNotification //当键盘显示在屏幕上时将发出这个通知
UIKeyboardWillHideNotification //当键盘将要从屏幕上移除时将会发出此通知。通知里包含了用户信息库,库里包含了各种关于键盘信息的详细信息,当键盘隐藏时动画,动画持续时间,等等。
UIKeyboardDidHideNotification //当键盘完全隐藏后将发出此通知
UIKeyboardAnimationCurveUserInfoKey //指明了动画类型,用来显示和隐藏键盘,这个关键字包含了一个NSNumber类型的值,此类型包含了一个NSUInteger类型无符号整数
UIKeyboardAnimationDurationUserInfoKey //这个键值指明了键盘显示和隐藏的动画所用的时间,这个包含一个NSNumber类型的值,此类包含一个double类型的双字节值。
UIKeyboardFrameBeginUserInfoKey
这个键值指明了键盘在动画之前的框架。假如键盘将要显示时,在显示之前将这个框架传递给这个动画。假如键盘已经显示了并即将要隐藏时,这个框架将会传递给这个隐藏动画,在键盘消失之前。这个键包含了一个 CGRect类型的值。
UIKeyboardFrameEndUserInfoKey
这个键值指明了动画完成后的键盘框架。假如键盘即将要显示时,这个框架将会在键盘完全显示后传递给键盘。。假如键盘已经完全显示,而且将要隐藏时,在完全隐藏后这个框架将会传递给键盘。这个键值包含了一个 CGRect类型的值。
- IOS学习笔记(8)UIPageViewController UIProgressView 监听和响应键盘通知
- IOS学习笔记(8)UIPageViewController UIProgressView 监听和响应键盘通知
- UIPageViewController UIProgressView 监听和响应键盘通知
- 监听和响应键盘通知
- 监听和响应键盘通知
- iOS--利用通知监听键盘
- iOS UISlider, UIProgressView, UIActivityIndicatorView使用方法和监听
- iOS学习笔记—— UIActivityIndicatorView 和 UIProgressView 的使用
- iOS开发(5)动态监听键盘通知
- IOS学习笔记20—UIActivityIndicatorView、UIProgressView
- IOS学习笔记20—UIActivityIndicatorView、UIProgressView
- iOS自学笔记之UIProgressView和UIActivityIndicatorView
- Flex 监听键盘事件(学习笔记)
- ios-day08-02(ios的通知机制:通知的发布、监听、移除,一些常见的系统通知、键盘状态的通知、通知和代理的异同)
- 监听键盘的显示和隐藏 通知
- ios键盘通知和自定义键盘
- ios键盘通知和自定义键盘
- ios键盘通知和自定义键盘
- 一篇很全面的freemarker教程
- SQLServer:定时作业的设置方法
- 进制转换
- android面试六
- TimesTen内存数据库监控 TT监控得懂这些
- IOS学习笔记(8)UIPageViewController UIProgressView 监听和响应键盘通知
- 栈和队列(一)--栈
- 读《李商隐诗集》有感
- jquery获取任意点击到的对象,绑定点击函数event.target 不能用this
- 智能开发框架 JEECG 作者张代浩专访
- <<计算机科学概论>>一道题不是很懂,想和大家一起讨论一下
- AllJoyn C# Unity API Reference Manual Version 3.2.0 (2)
- asp.net电子商务系统之四
- IOS学习之IOS5.0以上 使用新浪微博开放平台OAuth