用scrollview实现动态加载并支持横竖屏
来源:互联网 发布:大气环境防护距离软件 编辑:程序博客网 时间:2024/06/08 06:16
刚开始接触IOS,公司就让我用scrollview实现动态加载并支持横竖屏,但是我连scrollview原理是什么都不大懂。然后就去网上找资料,看代码。不过网上的人都是牛人啊,写的不全,代码也很复杂。我在code4中下载了个无限加载的例子,感觉理解的可以之后开始改。改着改着就出问题了:页面不停刷新,屏幕翻转的时候图片会重复加载,而且有时候系统不调用我在willAnimateRotationToInterfaceOrientation中写的方法,麻烦死了。
上面是我那段时间想问题想错了写的草稿。我改了人家的逻辑代码,而且自己对scrollview还不完全了解,所以才导致屏幕闪动。下面是闪动和不闪动的代码,给自己做个记录。
闪动的主要代码:
- (void) vertical{
[self getImagesWithCurpage:currentPage]; //根据当前页面重新设置curImages中的值
CGRect imageViewRect =self.view.bounds;
for (int i=0;i<5; i++) {
NSString *string = [curImages objectAtIndex:i ];
UIImage *image = [UIImage imageNamed:string];
UIImageView *imageView = [[UIImageView alloc]initWithImage:image];
imageView.frame = CGRectOffset(imageView.frame, imageViewRect.size.width * i, 0);
[self.myScrollviewaddSubview:imageView];
}
self.myScrollview.contentSize = CGSizeMake(self.view.bounds.size.width * 5.0f, self.view.bounds.size.height);
position = myScrollview.contentOffset.x / (self.view.bounds.size.width);//计算在ScrollView当前的页码
[myScrollview setContentOffset:CGPointMake(imageViewRect.size.width*position,0)];
}
改了之后的代码:- (void) vertical{
[selfgetImagesWithCurpageV :currentPage]; //根据当前页面重新设置curImages中的值
for (int i=0; i<3; i++) {
NSString *string = [curImagesobjectAtIndex:i ];
UIImage *image = [UIImageimageNamed:string];
UIImageView *imageView = [[UIImageViewalloc]initWithImage:image];
CGRect imageViewFrame = self.myScrollview.bounds;
imageViewFrame.origin.x = i *self.myScrollview.bounds.size.width;
imageView.frame = imageViewFrame;
[self.myScrollviewaddSubview:imageView];
}
self.myScrollview.contentSize =CGSizeMake(self.view.bounds.size.width *3, self.myScrollview.bounds.size.height);
[myScrollviewsetContentOffset:CGPointMake(self.myScrollview.bounds.size.width,0)];
}
把红色部分删掉就可以了。本来人家代码中就没有的,我为了支持横竖屏转换自己加上去的,横竖屏做出来了,但是会出现闪动。当初看了很多次都不知道自己的问题在什么地方,还是自己起初的思路有问题啊!转屏的时候,横屏和竖屏要存在一张相同的图片(横屏每次显示2张,竖屏1张),其实没必要算在scrollView中的偏移值,只要根据当前的页面进行重新绘制就可以了。
- 用scrollview实现动态加载并支持横竖屏
- Android实现动态切换横竖屏,保存横竖屏数据(用Preference存储)
- Android实现动态切换横竖屏,保存横竖屏数据(用Preference存储)
- ScrollView嵌套GridView,并实现GridView竖直分页加载
- ScrollView的简单实用并实现下拉加载
- iphone支持横竖屏
- android ScrollView动态添加内容实现下拉加载
- comboBox动态加载数据并支持多选(checkbox)
- 用VC++实现软件的多语种支持及动态库动态加载
- 动态切横竖屏
- ScrollView上拉加载实现
- Android笔记 fragment入门 动态加载fragment demo+ 判断横竖屏
- android 动态设置横竖屏切换 控制dialog等布局文件加载的方法
- EasyUI_datagrid实现动态加载列并为其绑定数据
- Android动态加载Jar包并实现Native方法
- iOS 实现项目整体竖屏,但单独某个视图支持 横竖屏
- iOS中如何实现单个页面支持横竖屏(其他页面只能竖屏)
- iOS中如何实现单个页面支持横竖屏(其他页面只能竖屏)
- domino批量替换邮件模板
- socket编程过程中的一些整理(1)
- mount命令(用来挂载硬盘或镜像等)
- 10791 - Minimum Sum LCM
- Liferay:使用eclipse和Tomcat7.x设置项目布暑的位置
- 用scrollview实现动态加载并支持横竖屏
- 谈谈文件增量同步算法:RSYNC和CDC
- KEIL使用教程
- iPhone 操作队列NSOperationQueue
- 快速排序算法实现
- 运行此安装程序之前,必须安装 32 位 Windows 映像处理组件(WIC)解决办法
- VB备忘录(7)类与对象---接口
- ldap文本处理
- 音视频相关系统的开发指南