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插件配 ...
随机推荐
- 批量操作QT UI中的控件
背景:在一个项目中,可能一个UI中存在大量相同的tablewidget,combobox,label等控件,每种可能有100个,此时想对它们进行同样的操作 方案:(以tablewidget为例,UI中 ...
- codeforces570D Tree Requests
题目链接:codeforces570D 正解:$dsu$ $on$ $tree$ 解题报告: 考虑这又是一类子树内的不带修改统计问题,直接上$dsu$ $on$ $tree$好咯. 直接按上一道题的做 ...
- UML中的组合、聚合、关联、继承、实现、依赖
转自:http://justsee.iteye.com/blog/808799 UML定义的关系主要有六种:依赖.类属.关联.实现.聚合和组合. 继承 指的是一个类(称为子类.子接口)继承另外的一个类 ...
- Python 基础教程(有经典的例子)
http://www.runoob.com/python/os-listdir.html
- kotlin for android----------MVP模式实现登录
学习了Kotlin,随便来个小案例,以MVP+Kotlin 来实现登录的一个小案例,希望对大家有所帮助,效果图: MVP: Model Model 是用户界面需要显示数据的抽象,也可以理解为从业务数据 ...
- Cannot locate the chosen ObjectFactory implementation: spring
错误信息: Caused by: Cannot locate the chosen ObjectFactory implementation: spring - [unknown location] ...
- Python执行Linux系统命令方法
Python执行Linux系统命令的4种方法 (1) os.system 仅仅在一个子终端运行系统命令,而不能获取命令执行后的返回信息 复制代码代码如下: system(command) -> ...
- [Android]Adb connection Error:远程主机强迫关闭了一个现有的连接
目前,针对Android手机研发的刷机软件和手机助手软件,都会调用Google开发的adb工具与手机进行通信. 有的刷机软件或者手机助手软件,在系统里会常驻一个服务,独占adb的端口(5037),这样 ...
- C++多线程1.createthread
C++ 多线程知识1.多线程入门 CreateThread 20131021 1.介绍WinAPI中的CreateThread 函数原型: HANDLE WINAPI CreateThread( LP ...
- bzip2压缩 解压缩
压缩/解压缩压缩/解压缩之后的文件名称 必须是bz2 首先是 -z 压缩文件-d 解压缩!