`
janedoneway
  • 浏览: 582077 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

iPhone应用开发之五: UIScrollView的详细讲解

 
阅读更多

From:http://www.2cto.com/kf/201111/112631.html

 

今天就讲下UIScrollView的一些事情,这个可以拖动的组件无论在应用还是游戏开发都会经常用到,所以我们就一定要更加熟悉它了。下面我们开始下手咯。

(1)初始化

一般的组件初始化都可以alloc和init来初始化,上一段代码初始化。

view plain

UIScrollView *sv  =[[UIScrollView alloc] initWithFrame:CGRectMake(0.0, 0.0,self.view.frame.size.width, 400)]; 

 

 

一般的初始化也都有很多方法,都可以确定组件的Frame,或者一些属性,比如UIButton的初始化可以确定Button的类型。当然,我比较提倡大家用代码来写,这样比较了解整个代码执行的流程,而不是利用IB来弄布局,确实很多人都用IB来布局会省很多时间,但这个因人而异,我比较提倡纯代码写。

 

(2)滚动属性

UIScrollView的最大属性就是可以滚动,那种效果很好看,其实滚动的效果主要的原理是修改他的坐标,准确的讲是修改原点坐标,而UIScrollView跟其他组件的都一样,有自己的delegate,在.h文件中要继承UIScrollView的delegate然后在.m文件的viewDidLoad设置的delegate为self。如下:

 

view plain

sv.pagingEnabled = YES; 

sv.backgroundColor = [UIColor blueColor]; 

sv.showsVerticalScrollIndicator = NO; 

sv.showsHorizontalScrollIndicator = NO; 

sv.delegate = self; 

 

CGSize newSize = CGSizeMake(self.view.frame.size.width * 2, self.view.frame.size.height); 

[sv setContentSize:newSize]; 

 

[self.view addSubview: sv]; 

 

 

 

在上面的代码中,一定要设置UIScrollView的pagingEnable为YES。不然你就是设置好了其他属性,它还是无法拖动,接下去的分别是设置背景颜色和是否显示水平和竖直拖动条,最后最重要的设置他的ContentSize,ContentSize的意思就是它所有内容的大小,这个和它的Frame是不一样的,只有ContentSize的大小大于Frame这样才可以支持拖动。

 

(3)结合UIPageControl做新闻翻页效果

初始化UIPageControl的方法都很简单,就是上面讲的alloc和init,不过大家要记住的一点就是如果你定义了全局变量一定要在delloc那里释放掉。

 

UIPageControl有一个userInteractionEnabled你可以设置它为NO。就是点击的时候它不调用任何方法。然后设置它的currentPage 为0,并把它加到view上去。

 

接下来在UIScrollView的delegate方法:

view plain

- (void)scrollViewDidScroll:(UIScrollView *)scrollView;   

 

 

在这里你可以写上关于UIPageControl的页面设置的算法。如下

 

view plain

int index = fabs(scrollView.contentOffset.x) /scrollView.frame.size.width; 

 

pageControl.currentPage = index; 

 

 

(4)其他的

UIScrollView还支持处理缩放的动作,比如图片的缩小或者地图。

但是必须实现它的委托viewForZoomingInScrollView:

scrollViewDidEndZooming:withView:atScale:然后它的两个属性maximumZoomScale和minimumZoomScale 要不一样。这样就能基本实现图片的缩放了。

 

好了,今天讲UIScrollView和UIPageControl就到这里咯,希望大家都能理解。欢迎拍砖。

附加一个photo的利用UIScrollView实现的demo给大家:http://www.2cto.com/uploadfile/2011/1130/20111130025112243.zip

 

作者Andy---清风

 

分享到:
评论

相关推荐

    【iphone应用开发】Iphone应用开发之五: UIScrollView的详细讲解

    在iOS应用开发中,UIScrollView是苹果提供的一种非常重要的视图组件,它允许用户在超过屏幕大小的内容中进行滚动浏览。本教程将深入讲解UIScrollView的工作原理、基本用法以及如何通过实例来实现滚动视图。 首先,...

    iPhone开发之UIScrollView初步示例程序

    本教程将深入讲解如何在iPhone应用中使用UIScrollView,结合提供的初步示例程序,我们将探讨其核心概念、设置方法以及如何在实际项目中应用。 首先,UIScrollView是一个可滚动的容器,可以包含多个子视图,如...

    IOS应用源码之基于CATiledLayer UIScrollView的地图显示程序TiledLayer_iphone.zip

    在iOS开发中,地图显示是常见的功能之一,而本压缩包中的源码示例"IOS应用源码之基于CATiledLayer UIScrollView的地图显示程序TiledLayer_iphone.zip"着重讲解了如何利用CATiledLayer和UIScrollView来高效地实现这一...

    iphone 开发秘籍代码 第7章第一部分 C07-02a - Image Scroller

    《iPhone开发秘籍》是iOS开发者的一本重要参考资料,第7章主要讲解了如何在iPhone应用中实现图像滚动视图,这一部分C07-02a - Image Scroller则是该章节的一个实战案例,旨在帮助开发者掌握动态显示大量图片并实现...

    iphone 图片的放大缩小

    在iOS开发中,实现iPhone图片的放大和缩小功能通常涉及到`UIScrollView`的使用。`UIScrollView`是苹果提供的一个视图类,它允许用户通过滚动来查看超过屏幕大小的内容。在这个场景下,我们主要关注如何在`...

    iphone开发实例 TableView 02

    在iOS开发中,UITableView是应用最广泛的控件之一,它被用来展示列表或者表格数据,常见于各种App的用户界面,如联系人列表、邮件收件箱等。本实例“iphone开发实例 TableView 02”将重点讲解如何通过偏移量(Offset...

    scrollView的页面无限循环显示示例

    在iOS应用开发中,`UIScrollView` 是一个非常重要的控件,它允许用户通过滚动来查看超过屏幕大小的内容。本示例“scrollView的页面无限循环显示”着重于展示如何利用`UIScrollView`实现一个无限循环的页面滑动效果,...

    一步一步学习 iOS 6 编程(第四版)

    17. iPhone应用和RESTful WCF服务及SQL Server数据库交互:进一步深入了跨平台服务交互的概念,讲解了iOS应用如何通过RESTful接口与后端的WCF服务和SQL Server数据库进行数据交互。 18. 其他知识点还包括使用...

    UIScrollView添加Item的动画(iPhone源代码)

    本教程将详细讲解如何在UIScrollView中实现动态添加和移除item,并带有动画效果,这对于创建交互性强的应用至关重要。源代码来源于开发者@冷月残阳,遵循自定义许可协议。 首先,我们需要理解UIScrollView的基本...

    iphone初学者制作的小游戏

    1. **Swift编程语言**:作为iOS应用开发的主要语言,Swift是Apple为开发者设计的一种强大而易学的语言。"BallGame"的开发肯定离不开Swift,初学者需要掌握基础语法,如变量、函数、控制流等,以便编写游戏逻辑和处理...

    斯坦福大学开放课程:iOS开发教程2010年秋(Lecture 11)

    斯坦福大学的开放课程《iOS开发教程》2010年秋季版第11讲主要围绕iOS应用开发的核心概念和技术进行深入讲解。本课程通过实际示例介绍了Objective-C语言的基本要素、Foundation框架中的关键类以及如何构建高效的用户...

    Programming iOS 7 4th Edition

    《Programming iOS 7 第四版》是一本关于iOS应用开发的实用指南,由Matt Neuburg撰写,首次出版于2013年12月31日。该书主要面向那些已经掌握了Objective-C语言和Xcode基本操作的开发者,旨在帮助他们学习构建iOS应用...

    iphone 滑动改变单行tablecell高度

    在iPhone应用设计中,为了增加交互性和用户体验,我们有时需要实现一些特殊的动画效果,比如通过滑动来改变单行表格单元的高度。本教程将详细讲解如何实现“左右滑动改变单行tablecell高度”的功能。 首先,我们...

    传智播客iOS6免费公开课程-实现图片浏览器

    课程可能会讲解如何使用UIImageView、UIScrollView等UI控件来构建用户界面,以及如何利用UIPageControl来显示当前浏览的位置。 2. **图片加载与缓存**:在iOS应用中,图片加载是个常见问题。课程可能介绍如何使用...

    ios 网页中图片点击放大效果demo

    以下是对这个知识点的详细讲解: 1. **UIWebView**: UIWebView是Apple iOS SDK中的一个组件,它允许开发者在应用内嵌入网页内容,支持HTML、CSS和JavaScript等Web技术。在这个示例中,UIWebView用于加载含有图片的...

    swift版仿映客中间凸出tabBar,上下滑动时隐藏或显示导航栏及标签栏

    在iOS应用开发中,创建一个类似“映客”这样的视频直播平台界面,常常需要实现一些高级的UI交互效果,比如中间凸出的TabBar、在上下滑动时动态隐藏或显示导航栏及标签栏。本教程将重点讲解如何用Swift语言实现这个...

    ios中tableview下拉更新效果例子

    下面将详细讲解如何实现这个功能。 首先,你需要了解`UITableView`的基本用法。`UITableView`继承自`UIScrollView`,因此支持滚动操作。创建一个`UITableView`时,需要设置数据源(datasource)和代理(delegate)...

    纯代码AutoLayout布局的QQ聊天界面.zip

    下面将详细讲解AutoLayout在创建类似QQ聊天界面中的关键知识点。 首先,理解AutoLayout的基本概念非常重要。AutoLayout使用约束(Constraints)来定义视图之间的关系,这些约束包括尺寸(Width, Height)、位置...

    iOS滑动菜单

    在iOS应用开发中,滑动菜单是一种常见的交互设计,它为用户提供了一种便捷的方式来访问隐藏在主屏幕下方或侧边的附加功能。本教程将详细讲解如何实现一个类似网易新闻客户端的滑动菜单效果,这在移动应用设计中非常...

Global site tag (gtag.js) - Google Analytics