- 浏览: 711448 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
javenwong:
你好,我现在需要给一个Composite做圆角处理,不知道怎么 ...
SWT圆角窗口绘制 -
whao189:
回家了详细看看
Storyboard 解析 -
zhaoyubetter:
确实够麻烦
IOS 开发环境,证书和授权文件是什么? -
datawarehouse:
一直对这两个认为是一样的,现在学习了。
Oracle DB中的Schema -
yulanfeiyang:
顶,mark
下载音频,在IOS设备上播放
1.实现UIScrollViewDelegate
2.
// // HomeView.m // Direction // // Created by apple on 12-3-22. // Copyright (c) 2012年 __MyCompanyName__. All rights reserved. // #import "HomeView.h" #define WIDTH_OF_SCROLL_PAGE 320 #define HEIGHT_OF_SCROLL_PAGE 460 #define WIDTH_OF_IMAGE 320 #define HEIGHT_OF_IMAGE 284 #define LEFT_EDGE_OFSET 0 @implementation HomeView @synthesize scrollView; - (void)dealloc { [scrollView release]; [myTimer release]; [super dealloc]; } - (id)initWithFrame:(CGRect)frame { self = [super initWithFrame:frame]; if (self) { // Initialization code [self addSubview:[self homeScrollView]]; } return self; } -(UIScrollView *) homeScrollView{ scrollView = [[UIScrollView alloc] init]; CGRect scrollFrame; scrollFrame.origin.x = 0; scrollFrame.origin.y = 0; scrollFrame.size.width = WIDTH_OF_SCROLL_PAGE; scrollFrame.size.height = HEIGHT_OF_SCROLL_PAGE; scrollView = [[UIScrollView alloc] initWithFrame:scrollFrame]; scrollView.bounces = YES; scrollView.pagingEnabled = YES; scrollView.delegate = self; scrollView.userInteractionEnabled = YES; slideImages = [[NSMutableArray alloc] init]; [slideImages addObject:@"image1.png"]; [slideImages addObject:@"image2.png"]; [slideImages addObject:@"image3.png"]; //add the last image first UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:[slideImages objectAtIndex:([slideImages count]-1)]]]; imageView.frame = CGRectMake(LEFT_EDGE_OFSET, 0, WIDTH_OF_IMAGE, HEIGHT_OF_IMAGE); [scrollView addSubview:imageView]; [imageView release]; for (int i = 0;i<[slideImages count];i++) { //loop this bit UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:[slideImages objectAtIndex:i]]]; imageView.frame = CGRectMake((WIDTH_OF_IMAGE * i) + LEFT_EDGE_OFSET + 320, 0, WIDTH_OF_IMAGE, HEIGHT_OF_IMAGE); [scrollView addSubview:imageView]; [imageView release]; } //add the first image at the end imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:[slideImages objectAtIndex:0]]]; imageView.frame = CGRectMake((WIDTH_OF_IMAGE * ([slideImages count] + 1)) + LEFT_EDGE_OFSET, 0, WIDTH_OF_IMAGE, HEIGHT_OF_IMAGE); [scrollView addSubview:imageView]; [imageView release]; [scrollView setContentSize:CGSizeMake(WIDTH_OF_SCROLL_PAGE * ([slideImages count] + 2), HEIGHT_OF_IMAGE)]; [scrollView setContentOffset:CGPointMake(0, 0)]; [self addSubview:scrollView]; [self.scrollView scrollRectToVisible:CGRectMake(WIDTH_OF_IMAGE,0,WIDTH_OF_IMAGE,HEIGHT_OF_IMAGE) animated:NO]; [self performSelector:@selector(updateScrollView) withObject:nil afterDelay:0.0f]; return self.scrollView; } - (void) updateScrollView { [myTimer invalidate]; myTimer = nil; //time duration NSTimeInterval timeInterval = 3; //timer myTimer = [NSTimer scheduledTimerWithTimeInterval:timeInterval target:self selector:@selector(handleMaxShowTimer:) userInfo: nil repeats:YES]; } - (void)handleMaxShowTimer:(NSTimer*)theTimer { CGPoint pt = scrollView.contentOffset; int count = [slideImages count]; if(pt.x == WIDTH_OF_IMAGE * count){ [scrollView setContentOffset:CGPointMake(0, 0)]; [self.scrollView scrollRectToVisible:CGRectMake(WIDTH_OF_IMAGE,0,WIDTH_OF_IMAGE,HEIGHT_OF_IMAGE) animated:YES]; }else{ [self.scrollView scrollRectToVisible:CGRectMake(pt.x+WIDTH_OF_IMAGE,0,WIDTH_OF_IMAGE,HEIGHT_OF_IMAGE) animated:YES]; } } - (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView { int currentPage = floor((self.scrollView.contentOffset.x - self.scrollView.frame.size.width / ([slideImages count]+2)) / self.scrollView.frame.size.width) + 1; if (currentPage==0) { //go last but 1 page [self.scrollView scrollRectToVisible:CGRectMake(WIDTH_OF_IMAGE * [slideImages count],0,WIDTH_OF_IMAGE,HEIGHT_OF_IMAGE) animated:NO]; } else if (currentPage==([slideImages count]+1)) { //如果是最后+1,也就是要开始循环的第一个 [self.scrollView scrollRectToVisible:CGRectMake(WIDTH_OF_IMAGE,0,WIDTH_OF_IMAGE,HEIGHT_OF_IMAGE) animated:NO]; } } /* // Only override drawRect: if you perform custom drawing. // An empty implementation adversely affects performance during animation. - (void)drawRect:(CGRect)rect { // Drawing code } */ @end
发表评论
-
iphone编程之UILabel 用法详解
2012-12-18 14:38 1406这段代码动态的创建了一个UILabel,并且把相关常用的属 ... -
IOS用正则验证手机号
2012-12-14 12:01 17210- (BOOL)validateMobile:(NSStr ... -
UITableView技巧之去除UITableViewCell边框
2012-12-14 10:42 3605有时候想在UITableViewCell中加内容,但又不想要c ... -
MAC MySQL Workbench执行批量更新和删除的时候错误解决
2012-10-25 11:21 4003处理MySQL更新表时ErrorCode:1175.You a ... -
Objective-C编码风格指南
2012-10-17 17:00 1228参考资料: • Apple: Coding Guideline ... -
autorelease对象具体什么时候释放?
2012-09-19 15:21 1042在项目中,会有一个默认的Autorelease pool,程序 ... -
Objective-C内存管理教程和原理剖析
2012-09-10 14:44 898此文涉及的内存管理是针对于继承于NSObject的Clas ... -
IOS开发内存释放小结
2012-09-03 17:34 5366内存释放是iphone开发过程中比较重的地方,所以在开辟内存后 ... -
为什么Android没有iOS那么顺滑
2012-08-29 14:38 904虽然很多Android手机的配 ... -
UITextView关闭键盘
2012-08-29 14:13 142121.如果你程序是有导航条的,可以在导航条上面加多一个Done的 ... -
Mac系统下查看鼠标所在点的RGB值--数码测色计
2012-08-29 14:05 1797苹果电脑的Mac OS X系统自带鼠标所在点颜色RGB值查看工 ... -
UIView你知道多少
2012-08-21 09:49 844曾经有人这么说过,在i ... -
Objective-C内存管理总结〜CC专版
2012-08-17 18:24 822iPhone系统中的Objective-C的内存管理机制是比较 ... -
iOS内存管理
2012-08-17 18:19 28401. 内总管理原则(引用计数) IOS的对象都继承于 ... -
IOS 获取当前系统时间的年、月、日、小时、分、秒
2012-08-14 17:33 6625NSCalendar *calendar = [[NSCa ... -
IOS判断是否为数字
2012-08-13 17:59 4911判断是否为整形: - (BOOL)isPureInt:(N ... -
self.用法
2012-08-09 14:55 849MyClass.h @interface MyClass ... -
#import与@class的区别
2012-08-08 17:13 9411.import会包含这个类的所有信息,包括实体变量和方法,而 ... -
iphone图标去掉光晕效果
2012-08-07 16:53 1161图片背景是透明的 如果想去掉光晕效果,就在info.plist ... -
去掉 App Store 内图标上部高亮效果的办法
2012-08-07 16:52 893苹果默认会在 App Store 里的应用图标上半部自 ...
相关推荐
本教程将详细讲解如何实现`UIScrollView`的循环滚动功能,并结合手势识别和自动滚动,以提升用户体验。我们将通过分析提供的压缩包文件中的`UIScrollViewLoop-1`、`UIScrollViewLoop-2`和`UIScrollViewLoop`来探索这...
在电商应用中,我们经常看到一种效果,那就是商品推荐或广告轮播图能够实现无限自动循环,这正是`UIScrollView`结合`UIPageControl`功能的一种巧妙运用。本文将深入探讨如何实现这个功能。 首先,`UIScrollView`...
在本示例项目“UIScrollView实现图片无限滚动Demo”中,开发者利用`UIScrollView` 和其相关特性,创建了一个可以无限循环滚动图片的界面,同时集成了`UIPageControl` 用于指示当前显示的图片位置。这个功能常用于...
为了实现自动滚动,我们需要设置一个定时器(NSTimer)来定期改变UIScrollView的内容偏移量(contentOffset)。 1. **自动滚动的实现**: - 创建一个NSTimer对象,设定时间间隔(如2秒)。 - 在timer的回调方法中...
然后,为了实现自动循环滚动,我们需要利用NSTimer。NSTimer是一个定时器对象,可以按照指定的时间间隔执行某个任务。我们创建一个NSTimer,设置其时间间隔(例如2秒),并关联一个方法,该方法负责改变ScrollView的...
4. **实现自动轮播**:可以使用`NSTimer`定时改变`contentOffset.x`来实现自动轮播。每次轮播时,将`contentOffset.x`增加或减少一个屏幕宽度,使得视图向左或向右移动。同时,需要处理边界条件,当滑动到最后一张或...
然而,标准的`UIScrollView`并不支持自动无缝循环滚动,即当用户滑动到底部或顶部时,内容不能立即从开头或结尾重新出现。为了实现这种效果,开发者通常需要自定义`UIScrollView`的行为,这涉及到对`...
资源代码简洁,使用3个UIImageView实现了重用机制,既实现了NSTimer自动展示效果,并且在手动拖动时会停止NSTimer,拖动结束便会恢复, 也实现了UIPageControll 在滑动到页面一半时就能够实时响应。总共花时3天才写完...
UIScrollView 实现自动滚动 循环播放的视图 其实大家对这种demo并不少见了,但是我还是想自己去动手封装一个可以在任何项目中拿来就可以使用的,自己写的代码要比粘贴复制的代码更有意义,自己也就理解的更加深刻了...
这个示例代码展示了如何实现一个带有定时滚动和循环滚动功能的`UIScrollView`,同时结合了`UIPageControl`来指示当前显示的页面,并允许用户点击图片。 首先,我们看到`ViewController`继承自`UIViewController`并...
综上所述,实现“UIScrollview 图片无缝连续自动滚动”涉及到的知识点包括:UIScrollview的基本使用,内容Size和Frame的设置,图片加载和布局,自动滚动的实现,循环滑动逻辑,以及性能优化。通过理解和掌握这些技术...
实现`UIScrollView`的循环滚动是一项常见的需求,尤其在展示一系列相似内容时,如轮播图、商品列表等。在这个例子中,我们将深入探讨如何设置并实现`UIScrollView`的循环滚动功能。 首先,我们需要理解`...
要实现自动循环滚动,我们需要关注以下几个关键点: 1. **数据源(DataSource)**:你需要提供滚动视图的数据源,这通常是数组形式的图片URLs或者其他数据对象。每个对象对应滚动视图中的一个子视图。 2. **内容...
实现“无缝循环”意味着当用户滚动到最后一张图片时,`UIScrollView` 应该自动滚动回第一张图片,而不会出现空白或明显的跳跃。这种效果需要通过巧妙地设置 `UIScrollView` 的内容尺寸和内容偏移量来实现。同时,...
4. 循环滚动逻辑:当用户滚动到最后一张图片时,系统会自动重置contentOffset,使得第一张图片再次出现,实现无缝循环。为了达到这一效果,我们需要监听UIScrollView的滚动事件(scrollViewDidScroll)并在适当的...
实现轮播效果,通常是指在有限的显示区域内,通过滑动显示一系列图片或视图,达到自动循环播放的效果。这在很多应用的启动页、广告展示或者商品展示等场景中非常常见。以下将详细介绍如何使用UIScrollView来实现轮播...
在很多应用场景中,如新闻列表、图片轮播等,我们需要实现一个循环滚动的效果,使得内容看起来是无限循环的。本文将详细探讨如何在iOS中创建一个循环滚动的`UIScrollView`。 首先,我们需要理解`UIScrollView`的...
4. 自动滚动:实现广告的自动循环滚动,我们可以使用NSTimer配合scrollRectToVisible方法。首先,创建一个定时器,每隔一定时间滚动到下一个广告位置。 ```swift let timer = Timer.scheduledTimer(timeInterval: ...
首先,要实现`UIScrollView`的循环滚动,我们需要理解其工作原理。核心在于当用户滚动到`UIScrollView`的边界时,我们可以动态地添加或移除视图,使其看起来像在循环。这需要对`UIScrollView`的`contentSize`属性和...