论文部分内容阅读
智能手机在从服务器上获取大量数据时,受其自身性能以及网络带宽的限制,不可能一次將大量数据直接从互联网上获取过来,下拉刷新功能是智能手机常用的一种动态加载数据的手段,既能节省智能手机硬件资源,又可提供较好的用户体验。本文从分析下拉刷新的原理出发,提出了一种基于IOS平台的下拉刷新实现的灵活机制,并依据该机制进行了具体实现与应用。
【关键词】IOS;下拉刷新;机制
1 引言
移动互联时代的到来,智能手机的流行已成为手机市场的一大趋势。这类移动智能终端的出现改变了很多人的生活方式及对传统通讯工具的需求,人们不再满足于手机的外观和基本功能的使用,而开始追求手机强大的操作系统给人们带来更多、更强、更具个性的社交化服务。智能手机也几乎成了这个时代不可或缺的代表配置。与传统功能手机相比,智能手机以其便携、智能等的特点,使其在娱乐、商务、时讯及服务等应用功能上能更好的满足消费者对移动互联的体验。
随着智能手机的普及,如今越来越多的人们开始使用智能手机通过互联网获取大量的信息数据。近年来虽然智能手机的硬件性能不断增强,功能不断增加,但智能手机仍是一个移动互联的终端设备。其处理和存储数据的能力毕竟有限,而绝大多数的数据仍旧保存在互联网中的传统服务器上。智能手机在从服务器上获取大量数据时,受其自身性能以及网络带宽的限制,不可能一次将大量数据直接从互联网上获取过来,往往是一边浏览一边动态申请并获取数据,这就是智能手机应用开发中经常会遇到的下拉刷新功能。首先获取手机一屏能够显示的数据,随着不断的下拉来动态获取数据进行刷新显示。
2 IOS开发概述
目前主流的智能手机主要分为基于IOS系统平台的苹果手机和基于Android系统平台的安卓手机。苹果手机iPhone,是美国苹果公司研发的智能手机,它搭载iOS操作系统。iOS是由苹果公司开发的移动操作系统,在IOS系统上运行的应用程序采用统一的Xcode集成开发环境进行开发设计,使用Object-C或Swift语言进行具体开发实现。在Xcode开发环境中已经集成了强大的软件开发工具包SDK,该SDK系统架构分为四层,由上到下一次为:可触摸层(Cocoa Touch layer)、媒体层(Media layer)、核心服务层(Core Services layer)、核心操作系统层(Core OS layer),如图1所示。
(1)核心操作系统层包括:内存管理、文件系统、电源管理以及一些其他的操作系统任务。它可以直接和硬件设备进行交互。
(2)核心服务层:可以通过它来访问iOS的一些服务,包含了Foundation.Framework和Core Foundation.Framework,提供了一系列处理字符串,排列,组合,日历,时间等等的基本功能。
(3)媒体层:通过它可以在应用程序中使用各种媒体文件,进行音频与视频的录制,图形的绘制,以及制作基础的动画效果。
(4)触摸层:为应用程序开发提供了各种常用的框架并且大部分框架与界面有关。最核心的部分是UIKit.Framework,应用程序界面上的各种组件,全是由它来提供呈现的,除此之外它还负责处理屏幕上的多点触摸事件。
3 下拉刷新实现机制
下拉刷新是一种利用手势刷新用户界面的功能。当用户需要浏览大量的数据时,往往是先加载一屏的数据,当需要显示更多的数据时,通过下拉屏幕的手势再动态地加载一部分数据,刷新屏幕从而显示给用户。随着用户不断地下拉屏幕,一屏一屏动态地为用户加载并显示越来越多的数据。
对于下拉刷新的实现可在IOS的窗体上放置一个能够上下滚动的视图,及UIScrollView,该滚动试图上有能够上下滚动的滚动条。再在滚动视图UIScrollView上放置一个下拉刷新的视图PullToRefreshView,该视图实际上是一个普通视图UIView类的子类。该视图的宽度与滚动视图UIScrollView的宽度相同,高度可自行定义。在该视图上定义四种状态,分别为:1、刷新停止状态,还没有触发刷新操作。2、刷新操作被触发,但还没有开始发送请求(只要用户手还没松开,不会发送请求)。3、已经发送请求,但请求的数据还没有回来,这时等待状态图标会一直在转。4、初始化状态,在初始化数据的时候使用。当用户上下滚动UIScrollView的时候,其ContentOffset会发生变化。ContentOffset是UIScrollView当前显示区域顶点相对于窗体UIFrame顶点的偏移量。当ContentOffset发生变化时,根据ContentOffset来切换下拉刷新视图PullToRefreshView的相应状态,并根据相应的状态触发不同的事件,从而完成动态加载数据的任务。
4 下拉刷新视图PullToRefreshView的具体实现与应用
根据上面下拉刷新的实现机制,可对下拉刷新视图进行具体实现和调用。
(1)下拉刷新视图类PullToRefreshView的定义
@interface SVPullToRefreshView : UIView
(2)下拉刷新视图四种状态的定义
typedef NS_ENUM(NSUInteger, SVPullToRefreshState) {
SVPullToRefreshStateStopped = 0,
SVPullToRefreshStateTriggered,
SVPullToRefreshStateLoading,
SVPullToRefreshStateAll = 10
};
(3)为下拉刷新视图设置代理,以检测自身属性的变化从而进行相应的UI的调整。当UIScrollView在滑动时contentOffset,contentSize,frame都是需要监测的对象。 - (void)addPullToRefreshWithActionHandler:(void (^)(void))actionHandler;
- (void)addPullToRefreshWithActionHandler:(void (^)(void))actionHandler position:(SVPullToRefreshPosition)position;
- (void)triggerPullToRefresh;
(4)将下拉刷新控件放在顶部,当下拉刷新控件检测到的状态发生变化后将会调用ActionHandler中所定义的代码。在ActionHandler中往往会向服务器提交异步网络请求,获取数据后刷新视图进行显示。
[tableView addPullToRefreshWithActionHandler:^{
}];
(5)程序自动调用下拉刷新控件,实现下拉刷新动态加载數据。
[tableView triggerPullToRefresh];
5 总结
下拉刷新功能是智能手机常用的一种动态加载数据的手段,既能节省智能手机硬件资源,又可提供较好的用户体验。本文从分析下拉刷新的原理出发,提出了一种基于IOS平台的下拉刷新实现的灵活机制,并依据该机制进行了具体实现与应用。通过该机制可方便将下拉刷新视图类添加到已有的项目中,便于下拉刷新功能的灵活调用。
参考文献
[1]胡伟峰,辛向阳.智能手机iOS&;Android系统功能交互行为对比研究[J].装饰,2016(04):82-83.
[2]郝颖婕,郁舒兰.基于iOS系统手机APP界面设计研究[J].家具与室内装饰,2016(04):70-71.
[3]胡必玲,郭玉堂,叶嘉桓.ios下动态加载系统库文件的方法[J].合肥师范学院学报,2015(06):59-61.
[4]肖远东,蔡声镇.基于iOS平台的移动视频监控软件设计[J].计算机工程,2015(02):268-271+277.
[5]田赵洋,刘光灿.基于“萌否电台”API的iOS客户端开发[J].计算机应用与软件,2015(03):89-92.
作者简介
程杰(1978-),男,硕士研究生学历。现为郑州升达经贸管理学院信息工程系副教授。研究方向为计算机网络。
王文凡(1993-),女,硕士研究生学历。现为郑州升达经贸管理学院信息工程系学生。研究方向为软件工程。
作者单位
郑州升达经贸管理学院信息工程系 河南省郑州市 451191
【关键词】IOS;下拉刷新;机制
1 引言
移动互联时代的到来,智能手机的流行已成为手机市场的一大趋势。这类移动智能终端的出现改变了很多人的生活方式及对传统通讯工具的需求,人们不再满足于手机的外观和基本功能的使用,而开始追求手机强大的操作系统给人们带来更多、更强、更具个性的社交化服务。智能手机也几乎成了这个时代不可或缺的代表配置。与传统功能手机相比,智能手机以其便携、智能等的特点,使其在娱乐、商务、时讯及服务等应用功能上能更好的满足消费者对移动互联的体验。
随着智能手机的普及,如今越来越多的人们开始使用智能手机通过互联网获取大量的信息数据。近年来虽然智能手机的硬件性能不断增强,功能不断增加,但智能手机仍是一个移动互联的终端设备。其处理和存储数据的能力毕竟有限,而绝大多数的数据仍旧保存在互联网中的传统服务器上。智能手机在从服务器上获取大量数据时,受其自身性能以及网络带宽的限制,不可能一次将大量数据直接从互联网上获取过来,往往是一边浏览一边动态申请并获取数据,这就是智能手机应用开发中经常会遇到的下拉刷新功能。首先获取手机一屏能够显示的数据,随着不断的下拉来动态获取数据进行刷新显示。
2 IOS开发概述
目前主流的智能手机主要分为基于IOS系统平台的苹果手机和基于Android系统平台的安卓手机。苹果手机iPhone,是美国苹果公司研发的智能手机,它搭载iOS操作系统。iOS是由苹果公司开发的移动操作系统,在IOS系统上运行的应用程序采用统一的Xcode集成开发环境进行开发设计,使用Object-C或Swift语言进行具体开发实现。在Xcode开发环境中已经集成了强大的软件开发工具包SDK,该SDK系统架构分为四层,由上到下一次为:可触摸层(Cocoa Touch layer)、媒体层(Media layer)、核心服务层(Core Services layer)、核心操作系统层(Core OS layer),如图1所示。
(1)核心操作系统层包括:内存管理、文件系统、电源管理以及一些其他的操作系统任务。它可以直接和硬件设备进行交互。
(2)核心服务层:可以通过它来访问iOS的一些服务,包含了Foundation.Framework和Core Foundation.Framework,提供了一系列处理字符串,排列,组合,日历,时间等等的基本功能。
(3)媒体层:通过它可以在应用程序中使用各种媒体文件,进行音频与视频的录制,图形的绘制,以及制作基础的动画效果。
(4)触摸层:为应用程序开发提供了各种常用的框架并且大部分框架与界面有关。最核心的部分是UIKit.Framework,应用程序界面上的各种组件,全是由它来提供呈现的,除此之外它还负责处理屏幕上的多点触摸事件。
3 下拉刷新实现机制
下拉刷新是一种利用手势刷新用户界面的功能。当用户需要浏览大量的数据时,往往是先加载一屏的数据,当需要显示更多的数据时,通过下拉屏幕的手势再动态地加载一部分数据,刷新屏幕从而显示给用户。随着用户不断地下拉屏幕,一屏一屏动态地为用户加载并显示越来越多的数据。
对于下拉刷新的实现可在IOS的窗体上放置一个能够上下滚动的视图,及UIScrollView,该滚动试图上有能够上下滚动的滚动条。再在滚动视图UIScrollView上放置一个下拉刷新的视图PullToRefreshView,该视图实际上是一个普通视图UIView类的子类。该视图的宽度与滚动视图UIScrollView的宽度相同,高度可自行定义。在该视图上定义四种状态,分别为:1、刷新停止状态,还没有触发刷新操作。2、刷新操作被触发,但还没有开始发送请求(只要用户手还没松开,不会发送请求)。3、已经发送请求,但请求的数据还没有回来,这时等待状态图标会一直在转。4、初始化状态,在初始化数据的时候使用。当用户上下滚动UIScrollView的时候,其ContentOffset会发生变化。ContentOffset是UIScrollView当前显示区域顶点相对于窗体UIFrame顶点的偏移量。当ContentOffset发生变化时,根据ContentOffset来切换下拉刷新视图PullToRefreshView的相应状态,并根据相应的状态触发不同的事件,从而完成动态加载数据的任务。
4 下拉刷新视图PullToRefreshView的具体实现与应用
根据上面下拉刷新的实现机制,可对下拉刷新视图进行具体实现和调用。
(1)下拉刷新视图类PullToRefreshView的定义
@interface SVPullToRefreshView : UIView
(2)下拉刷新视图四种状态的定义
typedef NS_ENUM(NSUInteger, SVPullToRefreshState) {
SVPullToRefreshStateStopped = 0,
SVPullToRefreshStateTriggered,
SVPullToRefreshStateLoading,
SVPullToRefreshStateAll = 10
};
(3)为下拉刷新视图设置代理,以检测自身属性的变化从而进行相应的UI的调整。当UIScrollView在滑动时contentOffset,contentSize,frame都是需要监测的对象。 - (void)addPullToRefreshWithActionHandler:(void (^)(void))actionHandler;
- (void)addPullToRefreshWithActionHandler:(void (^)(void))actionHandler position:(SVPullToRefreshPosition)position;
- (void)triggerPullToRefresh;
(4)将下拉刷新控件放在顶部,当下拉刷新控件检测到的状态发生变化后将会调用ActionHandler中所定义的代码。在ActionHandler中往往会向服务器提交异步网络请求,获取数据后刷新视图进行显示。
[tableView addPullToRefreshWithActionHandler:^{
}];
(5)程序自动调用下拉刷新控件,实现下拉刷新动态加载數据。
[tableView triggerPullToRefresh];
5 总结
下拉刷新功能是智能手机常用的一种动态加载数据的手段,既能节省智能手机硬件资源,又可提供较好的用户体验。本文从分析下拉刷新的原理出发,提出了一种基于IOS平台的下拉刷新实现的灵活机制,并依据该机制进行了具体实现与应用。通过该机制可方便将下拉刷新视图类添加到已有的项目中,便于下拉刷新功能的灵活调用。
参考文献
[1]胡伟峰,辛向阳.智能手机iOS&;Android系统功能交互行为对比研究[J].装饰,2016(04):82-83.
[2]郝颖婕,郁舒兰.基于iOS系统手机APP界面设计研究[J].家具与室内装饰,2016(04):70-71.
[3]胡必玲,郭玉堂,叶嘉桓.ios下动态加载系统库文件的方法[J].合肥师范学院学报,2015(06):59-61.
[4]肖远东,蔡声镇.基于iOS平台的移动视频监控软件设计[J].计算机工程,2015(02):268-271+277.
[5]田赵洋,刘光灿.基于“萌否电台”API的iOS客户端开发[J].计算机应用与软件,2015(03):89-92.
作者简介
程杰(1978-),男,硕士研究生学历。现为郑州升达经贸管理学院信息工程系副教授。研究方向为计算机网络。
王文凡(1993-),女,硕士研究生学历。现为郑州升达经贸管理学院信息工程系学生。研究方向为软件工程。
作者单位
郑州升达经贸管理学院信息工程系 河南省郑州市 451191