使用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学习笔记中用到的美化按钮的背景图,iphone风格
ios学习笔记---simpleping 适合初学者练习使用。只是一个小的demo
是之前 IOS学习笔记上补充了一些 这边只是备份以后用到好下载 也欢迎你们来下载 学习 ^ ^
ios学习笔记 --sqllite3 创建 插入 查询 适合新手学习 加油
ios安全学习笔记, 供需要的人学习. 对iOS 感兴趣的同学可以看看
UIPageViewController的基本使用
iOS学习笔记之QuartzCore框架.pdf
iOS学习笔记之QuartzCore框架.rar
已封装成NSObject的分类
iOS学习笔记,技术道路走到黑.zip
KVO监听UI控件的frame变化,kVO的简单使用
当输入框的高度低于了键盘的高度时,点击输入框,使之成为第一响应者,然后将控制器的view上移,当触摸屏幕时收回到原处,增加了判断输入框的内容是否为空,适合用来做登录、注册相关的需要输入的界面。初次上传,有...
一.前言IOS监听手势使用的方法为UISwipeGestureRecognizer。二. 添加手势监听三. 添加响应事件四. 模板把上面的整合起来,基本可以按照
这里面讲的都是些平常见的事情,平时看看,对自己开发能力有所提高
在我们开发中,经常用到评论等功能,在下方一个TextField,但是弹出键盘,评论框也要弹起,这时候要监听高度,本代码可完美实现此功能
我自学iOS开发时做的笔记,主要是OC语言的语法部分,没有包fundation框架,以我的亲身感受总结出iOS初学者容易犯的错误及疑问的地方,对本文如果意见欢迎与我交流,谢谢
//改变状态栏 和 导航栏的状态 // [self changeImageScale]; //点击放大图片 再点击缩小 // [self viewAnimation]; //View的动画 // [self imgToGrayimg]; //UIImage转为灰度图 // [self scaleFromScaledToSize:...
iOS UIPageViewController学习资料