http://bbs.csdn.net/topics/390347330

原问题是,我要展现给用户的内容放在scrollview中,让内容从上到底自动滚动,我最开始用的是DDAutoscrollview,但是无法实现。

一种解决方案见下边,更多解决方案见:http://ask.csdn.net/questions/374

.h文件

Objective C code

 

?

1
2
3
4
5
6
7
8
9
 @interface Interface1 : UIViewController {
 
    IBOutlet UIScrollView *scroller;
    IBOutlet UILabel *warnung;
 
}
 
 
@property (nonatomicretainIBOutlet UIScrollView* scrollView;

.m文件

Objective C code

 

?

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:

Objective C code

?

1
2
3
4
UIScrollView *scrollView = ...;
CGPoint newOffset = scrollView.contentOffset;
newOffset.y = 0;
[scrollView setContentOffset:newOffset animated:YES];

如果需要开场动画的效果,在scrollView的viewcontroller实现

Objective C code

 

?

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实现:

Objective C code

 

?

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自动滚动的实现的更多相关文章

  1. 解决点击状态栏时ScrollView自动滚动到初始位置失效办法

    http://www.cocoachina.com/ios/20150807/12949.html 取消点击状态栏scrollView会自动滚动到初始位置的功能 _scrollView.scrolls ...

  2. android禁止ScrollView自动滚动

    当Scrollview嵌套listview,或者子View的内容过多时,当内容加载完成后,ScrollView中内容的长度会发生改变,ScrollView会自动往下滚动,解决办法:在ScollView ...

  3. Android 和iOS中 View的滚动

    在最近的程序中用到了Android中的View的滚动,记录一下,待总结.

  4. ios中scrollView基本用法

    设置scrollView内容的尺寸(滚动的范围) self.scrollView.contentSize = CGSizeMake(, ); self.scrollView.contentSize = ...

  5. ios 中scrollview上面嵌套tableView,左右滑动出现数据多次刷新的问题

    注意scrollView左右滑动时不要刷新数据,刚进来时一次性请求所有数据 红包纪录和房源信息可以左右滑动和点击,tableView可以上下滑动,图片部分个人信息只刷新一次. 界面布局如下

  6. iOS中scrollview是否要回弹

    1. @property(nonatomic) BOOL bounces //当滚动到内容边缘是否发生反弹,default is YES.2. @property(nonatomic) BOOL al ...

  7. ios中蓝牙自动连接出现硬件提示框的问题

    出现如图所示情况,这时候有两种方法可以处理,一种是让硬件部修改硬件配对,另一种是程序里面测试该提示框的对应特征值,不要调用该特征值就不会出现 //2.扫描到Characteristics,特征回调 - ...

  8. ios中怎么样自动剪切图片周围超出的部分

    UIImageView *image = [[UIImageView alloc] init]; image.clipsToBounds = YES;

  9. iOS 中有用的开源库

    youtube下载神器:https://github.com/rg3/youtube-dl vim插件:https://github.com/Valloric/YouCompleteMe vim插件配 ...

随机推荐

  1. hdu 4825 Xor Sum trie树

    Xor Sum Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 132768/132768 K (Java/Others) Proble ...

  2. zabbix自动化运维学习笔记(服务器安装)

    最近博主开始接触自动化运维.首先就是zabbix这个开源的监控系统 一开始博主只是在自己的虚拟机上尝试安装.最后终于开始在公司的服务器上正式安装,教程博主也是通过度娘找的 这是原文:链接 安装环境:C ...

  3. 【51nod-1521】一维战舰

    爱丽丝和鲍博喜欢玩一维战舰的游戏.他们在一行有n个方格的纸上玩这个游戏(也就是1×n的表格). 在游戏开始的时候,爱丽丝放k个战舰在这个表格中,并不把具体位置告诉鲍博.每一只战舰的形状是 1×a 的长 ...

  4. 重温ASP.NET WebAPI(二)进阶

    重温ASP.NET WebAPI(二)进阶   介绍 本文为个人对WebApi的回顾无参考价值. 本文内容: Rest和UnitOfWork 创建WebAPi的流程 IOC-Unity的使用 MEF ...

  5. (转)Android学习笔记②——HelloWorld的创建已经基本知识

    开发第一应用 可以开发属于自己的应用,是否有点小激动?好吧!让我们开始,首先点击Start a new Android Studio Project创建工程:接下来需要输入应用名称(第一个字母要大写) ...

  6. jmeter测试MySQL数据库

    前提:安装好MySQL数据库,并且下载了jmeter安装包 1.打开jmeter 2.下载mysql-connector-java.jar,将jar包默认复制到jmeter的bin目录下面,因为默认打 ...

  7. 20165202 实验二 Java面向对象程序设计

    实验二 Java面向对象程序设计 一.实验报告封面 课程:Java程序设计 班级:1652班 姓名:贾海粟 学号:20165202 指导教师:娄嘉鹏 实验日期:2018年4月16日 实验时间:15:3 ...

  8. 20165202 week4课下补做

    1.相关知识点的总结 编程实现1!+2!+3!+... + N!的功能,N由命令行传入,比如类名为SumofRecur, java SumofRecur 8 给出1!+2!+3!+... + 8!的值 ...

  9. New Concept English three (24)

    33 72 We often read in novels how a seemingly respectable person or family has some terrible secret ...

  10. Shell 命令行批量处理图片文件名

    Shell 命令行批量处理图片文件名 从网上下载了一堆图片,有的是*.jpg的,有的是*.jpeg的.并且文件名有长有短,很是糟心.因此,我想把这些文件给全部整理好,当然是用shell来处理啦! 说干 ...