【代码笔记】电影上的花絮,自动滚动

一,效果图。

二,工程图。

三,代码。

RootViewController.h

#import <UIKit/UIKit.h>

@interface RootViewController : UIViewController
<UIScrollViewDelegate>
{
    UIScrollView *scoreView;
}
@end

RootViewController.m

#import "RootViewController.h"

@interface RootViewController ()

@end

@implementation RootViewController

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;
}

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view.

    [self initBackgroundView];
}
#pragma -mark -functions
-(void)initBackgroundView
{
    self.view.backgroundColor=[UIColor greenColor];

    scoreView=[[UIScrollView alloc]initWithFrame:CGRectMake(0, 100, 320, 140)];
    scoreView.backgroundColor=[UIColor greenColor];
    scoreView.contentSize=CGSizeMake(320*3, 140);
    scoreView.showsVerticalScrollIndicator=NO;
    scoreView.showsHorizontalScrollIndicator=NO;
    scoreView.scrollEnabled=NO;
    scoreView.delegate=self;
    [self.view addSubview:scoreView];

    for (int i=0; i<4; i++) {
        UIImageView* imageView=[[UIImageView alloc]initWithFrame:CGRectMake(i*320, 0, 320, 140)];
         imageView.image=[UIImage imageNamed:[NSString stringWithFormat:@"%d.jpg",i]];
        if (i==3) {
            imageView.image=[UIImage imageNamed:@"0.jpg"];
        }
        [scoreView addSubview:imageView];
    }

    [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(timer:) userInfo:nil repeats:YES];

    UIPageControl* pc = [[UIPageControl alloc] initWithFrame:CGRectMake(0, 220, 320, 20)];
    pc.numberOfPages = 3;
    pc.tag=100;
    [pc addTarget:self action:@selector(pc:) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:pc];

}
-(void)timer:(NSTimer *)timer{

    if (scoreView.contentOffset.x==320*3) {
        scoreView.contentOffset=CGPointMake(0, 0);
    }
    [scoreView setContentOffset:CGPointMake(scoreView.contentOffset.x+320,0) animated:YES];
}
- (void)pc:(UIPageControl*)pc{
    scoreView.contentOffset=CGPointMake(pc.currentPage*320, 0);
}
#pragma -mark -UIScrollerViewDelegate
- (void)scrollViewDidScroll:(UIScrollView *)scrollView{

    UIPageControl* pc = (UIPageControl*)[self.view viewWithTag:100];
    pc.currentPage = scrollView.contentOffset.x / 320;
    if (scoreView.contentOffset.x==320*3) {
        pc.currentPage=0;
    }
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

时间: 2024-08-04 13:22:18

【代码笔记】电影上的花絮,自动滚动的相关文章

【代码笔记】iOS-Label随字自动变大

一,效果图. 二,工程图. 三, 代码. RootViewController.h #import <UIKit/UIKit.h> //添加HPGrowingTextView头文件 #import "HPGrowingTextView.h" @interface RootViewController : UIViewController <HPGrowingTextViewDelegate> { HPGrowingTextView *textView; } @e

IOS开发UI篇之自动滚动图片

我们在做项目是有时候会遇到设置自动滚动图片,所以我自己也遇到过两次.觉得他是一个挺有意思东西,所以做了下总结 DEMO: .h #import <UIKit/UIKit.h> @interface ImagePlayView : UIView<UIScrollViewDelegate> @property (nonatomic, strong) UIScrollView * scroll; @property (nonatomic, strong) UIPageControl *

课堂笔记-----页面的自动滚动效果

页面的自动滚动效果,可由javascript来实现, 但是有一个html标签 - <marquee></marquee>可以实现多种滚动效果,无需js控制. 使用marquee标记不仅可以移动文字,也可以移动图片,表格等. 语法:<marquee >...</marquee>: 说明:在标记之间添加要进行滚动的内容. 重要属性: 1.滚动方向direction(包括4个值:up. down. left和 right) 语法:<marquee direc

Android开发之实现图片自动滚动显示标签的ViewPager

Android中实现图片自动滚动的效果非常的常见,我们可以自己动画去实现功能.但是在Android中提供了一个ViewPager类,实现了滚动效果,在Android的extras目录下android-support-vx.jar中,x代表版本4,7等等.使用时我们需要android.support.v4.view.ViewPager的viewPager标签. 博客来源:http://blog.csdn.net/fengshizty 代码非常的简单,不用解释: xml布局文件如下: <Relati

解决Android中,禁止ScrollView内的控件改变之后自动滚动

问题: 最近在写一个程序界面,有一个scrollVIew,其中有一段内容是需要在线加载的. 当内容加载完成后,ScrollView中内容的长度会发生改变,这时ScrollView会自动下滚,如下图所示: 滚动的那一下体验特别不好,所以要防止这种情况.即不论Scrollview中内容如何,都要保持在最上. 解决办法: 先简单写一下我的xml文件的结构: [html] view plaincopy <ScrollView android:id="@+id/scrollView1" a

这些基础知识你都了解吗?——《松本行弘的程序世界》读书笔记(上)

1. 前言 半个月之前买了这本书,还是经园子里的一位网友推荐的.到现在看了一半多,基础的都看完了,剩下的几章可做高级部分来看.这本书看到现在,可以说感触很深,必须做一次读书笔记! 关于这本书,不了解的可以去网上查查.作者是Ruby语言的创始人,可谓是程序世界中的高手,开卷有益,不管你是哪个层次的编程人员,相信都能或多或少的汲取到你想要的营养. 下面将总结一下看完本书我记录下的一些知识点.有的是书中的原话,有的是我个人的理解,供参考. 2. 面向对象 2.1 多态性 面向对象三大原则:继承.封装和

Spring Security笔记:Remember Me(下次自动登录)

前一节学习了如何限制登录尝试次数,今天在这个基础上再增加一点新功能:Remember Me. 很多网站,比如博客园,在登录页面就有这个选项,勾选“下次自动登录”后,在一定时间段内,只要不清空浏览器Cookie,就可以自动登录. 一.spring-security.xml 最简单的配置 1 <http auto-config="true" use-expressions="true"> 2 ... 3 <remember-me /> 4 <

ScrollView(RecyclerView等)为什么会自动滚动原理分析,还有阻止自动滑动的解决方案

引言,有一天我在调试一个界面,xml布局里面包含Scroll View,里面嵌套了recyclerView的时候,界面一进去,就自动滚动到了recyclerView的那部分,百思不得其解,上网查了好多资料,大部分只是提到了解决的办法,但是对于为什么会这样,都没有一个很好的解释,本着对技术的负责的态度,花费了一点时间将前后理顺了下 1.首先在包含ScrollView的xml布局中,我们在一加载进来,ScrollView就自动滚动到获取焦点的子view的位置,那我们就需要看下我们activity的o

Qt qml中listview 列表视图控件(下拉刷新、上拉分页、滚动轴)

Qt qml中listview 列表视图控件(下拉刷新.上拉分页.滚动轴) 来源 https://www.cnblogs.com/surfsky/p/4352898.html 设置ListView涉及到将contentsY,即视图的可见部分的顶部,设置y为委托的值.另一个更改是interactive将视图设置为false.这样可以防止视图移动.用户不能再滚动列表或更改当前Item. contentY为列表上拉后列表左上角点距显示框左上解点的高度listView1.height为可显示部分的高度,