iOS中scrollview自动滚动的实现
http://bbs.csdn.net/topics/390347330
原问题是,我要展现给用户的内容放在scrollview中,让内容从上到底自动滚动,我最开始用的是DDAutoscrollview,但是无法实现。
一种解决方案见下边,更多解决方案见:http://ask.csdn.net/questions/374
.h文件
|
1
2
3
4
5
6
7
8
9
|
@interface Interface1 : UIViewController { IBOutlet UIScrollView *scroller; IBOutlet UILabel *warnung;}@property (nonatomic, retain) IBOutlet UIScrollView* scrollView; |
.m文件
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
- (void)viewDidAppear:(BOOL)animated{ [super viewDidAppear:animated]; CGPoint bottomOffset = CGPointMake(self.scrollView.contentOffset.x, self.scrollView.contentSize.height - self.scrollView.bounds.size.height); [self.scrollView setContentOffset:bottomOffset animated:NO]; CGPoint newOffset = self.scrollView.contentOffset; newOffset.y = 0; [self.scrollView setContentOffset:newOffset animated:YES];}- (void)viewDidLoad{ [scroller setScrollEnabled:YES]; [scroller setContentSize:CGSizeMake(320, 420)]; [super viewDidLoad];} |
使用setContentOffset:animated:
|
1
2
3
4
|
UIScrollView *scrollView = ...;CGPoint newOffset = scrollView.contentOffset;newOffset.y = 0;[scrollView setContentOffset:newOffset animated:YES]; |
如果需要开场动画的效果,在scrollView的viewcontroller实现
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
- (void)viewDidLoad{ [super viewDidLoad]; // ... CGPoint bottomOffset = CGPointMake(self.scrollView.contentOffset.x, self.scrollView.contentSize.height - self.scrollView.bounds.size.height); [self.scrollView setContentOffset:bottomOffset animated:NO];}- (void)viewDidAppear:(BOOL)animated{ [super viewDidAppear:animated]; CGPoint newOffset = self.scrollView.contentOffset; newOffset.y = 0; [self.scrollView setContentOffset:newOffset animated:YES];} |
移动的慢点,用timer实现:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
- (void)viewDidLoad{ [super viewDidLoad]; // ... CGPoint bottomOffset = CGPointMake(self.scrollView.contentOffset.x, self.scrollView.contentSize.height - self.scrollView.bounds.size.height); [self.scrollView setContentOffset:bottomOffset animated:NO];}- (void)viewDidAppear:(BOOL)animated{ [super viewDidAppear:animated]; CGPoint bottomOffset = CGPointMake(self.scrollView.contentOffset.x, self.scrollView.contentSize.height - self.scrollView.bounds.size.height); //设置延迟时间 float scrollDurationInSeconds = 4.0; //计算timer间隔 float totalScrollAmount = bottomOffset.y; float timerInterval = scrollDurationInSeconds / totalScrollAmount; [NSTimer scheduledTimerWithTimeInterval:timerInterval target:self selector:@selector(scrollScrollView:) userInfo:nil repeats:YES];}- (void)scrollScrollView:(NSTimer *)timer{ CGPoint newScrollViewContentOffset = self.scrollView.contentOffset; //向上移动 1px newScrollViewContentOffset.y -= 1; newScrollViewContentOffset.y = MAX(0, newScrollViewContentOffset.y); //如果到顶了,timer中止 if (newScrollViewContentOffset.y == 0) { [timer invalidate]; } //最后设置scollView's contentOffset self.scrollView.contentOffset = newScrollViewContentOffset;} |
iOS中scrollview自动滚动的实现的更多相关文章
- 解决点击状态栏时ScrollView自动滚动到初始位置失效办法
http://www.cocoachina.com/ios/20150807/12949.html 取消点击状态栏scrollView会自动滚动到初始位置的功能 _scrollView.scrolls ...
- android禁止ScrollView自动滚动
当Scrollview嵌套listview,或者子View的内容过多时,当内容加载完成后,ScrollView中内容的长度会发生改变,ScrollView会自动往下滚动,解决办法:在ScollView ...
- Android 和iOS中 View的滚动
在最近的程序中用到了Android中的View的滚动,记录一下,待总结.
- ios中scrollView基本用法
设置scrollView内容的尺寸(滚动的范围) self.scrollView.contentSize = CGSizeMake(, ); self.scrollView.contentSize = ...
- ios 中scrollview上面嵌套tableView,左右滑动出现数据多次刷新的问题
注意scrollView左右滑动时不要刷新数据,刚进来时一次性请求所有数据 红包纪录和房源信息可以左右滑动和点击,tableView可以上下滑动,图片部分个人信息只刷新一次. 界面布局如下
- iOS中scrollview是否要回弹
1. @property(nonatomic) BOOL bounces //当滚动到内容边缘是否发生反弹,default is YES.2. @property(nonatomic) BOOL al ...
- ios中蓝牙自动连接出现硬件提示框的问题
出现如图所示情况,这时候有两种方法可以处理,一种是让硬件部修改硬件配对,另一种是程序里面测试该提示框的对应特征值,不要调用该特征值就不会出现 //2.扫描到Characteristics,特征回调 - ...
- ios中怎么样自动剪切图片周围超出的部分
UIImageView *image = [[UIImageView alloc] init]; image.clipsToBounds = YES;
- iOS 中有用的开源库
youtube下载神器:https://github.com/rg3/youtube-dl vim插件:https://github.com/Valloric/YouCompleteMe vim插件配 ...
随机推荐
- hdu 4825 Xor Sum trie树
Xor Sum Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 132768/132768 K (Java/Others) Proble ...
- zabbix自动化运维学习笔记(服务器安装)
最近博主开始接触自动化运维.首先就是zabbix这个开源的监控系统 一开始博主只是在自己的虚拟机上尝试安装.最后终于开始在公司的服务器上正式安装,教程博主也是通过度娘找的 这是原文:链接 安装环境:C ...
- 【51nod-1521】一维战舰
爱丽丝和鲍博喜欢玩一维战舰的游戏.他们在一行有n个方格的纸上玩这个游戏(也就是1×n的表格). 在游戏开始的时候,爱丽丝放k个战舰在这个表格中,并不把具体位置告诉鲍博.每一只战舰的形状是 1×a 的长 ...
- 重温ASP.NET WebAPI(二)进阶
重温ASP.NET WebAPI(二)进阶 介绍 本文为个人对WebApi的回顾无参考价值. 本文内容: Rest和UnitOfWork 创建WebAPi的流程 IOC-Unity的使用 MEF ...
- (转)Android学习笔记②——HelloWorld的创建已经基本知识
开发第一应用 可以开发属于自己的应用,是否有点小激动?好吧!让我们开始,首先点击Start a new Android Studio Project创建工程:接下来需要输入应用名称(第一个字母要大写) ...
- jmeter测试MySQL数据库
前提:安装好MySQL数据库,并且下载了jmeter安装包 1.打开jmeter 2.下载mysql-connector-java.jar,将jar包默认复制到jmeter的bin目录下面,因为默认打 ...
- 20165202 实验二 Java面向对象程序设计
实验二 Java面向对象程序设计 一.实验报告封面 课程:Java程序设计 班级:1652班 姓名:贾海粟 学号:20165202 指导教师:娄嘉鹏 实验日期:2018年4月16日 实验时间:15:3 ...
- 20165202 week4课下补做
1.相关知识点的总结 编程实现1!+2!+3!+... + N!的功能,N由命令行传入,比如类名为SumofRecur, java SumofRecur 8 给出1!+2!+3!+... + 8!的值 ...
- New Concept English three (24)
33 72 We often read in novels how a seemingly respectable person or family has some terrible secret ...
- Shell 命令行批量处理图片文件名
Shell 命令行批量处理图片文件名 从网上下载了一堆图片,有的是*.jpg的,有的是*.jpeg的.并且文件名有长有短,很是糟心.因此,我想把这些文件给全部整理好,当然是用shell来处理啦! 说干 ...