自动滚动,自动显示下一个图像

效果图:

每隔1s会自动切换图像和小白点。

工程图:

代码:

RootViewController.h

#import <UIKit/UIKit.h>

@interface RootViewController : UIViewController
<UIScrollViewDelegate,UIPageViewControllerDelegate>
{
    UIScrollView *imageScrollView;
    UIPageControl *pageControl;
    NSInteger changePage;
    NSTimer *showtimer;

}

@end

RootViewController.m

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

    self.title=@"自动滚动,自动显示下一个图像";

    //自动切换页面
    showtimer=[NSTimer scheduledTimerWithTimeInterval:1.0f target:self selector:@selector(changePageNumber) userInfo:nil repeats:YES];
    //加滚动条
    [self addScrollView];
    //加滑动的圆点
    [self addPageControl];

}
#pragma -mark -functions
//加入滚动条
-(void)addScrollView {

    imageScrollView = [[UIScrollView alloc]initWithFrame:CGRectMake(0, 100, 320, 120)];
    [imageScrollView setBackgroundColor:[UIColor redColor]];;
    [imageScrollView setContentSize:CGSizeMake(320*4, 120)];
    [imageScrollView setBounces:NO];
    [imageScrollView setDelegate:self];;
    imageScrollView.pagingEnabled = YES;
    imageScrollView.showsHorizontalScrollIndicator = NO;
    imageScrollView.showsVerticalScrollIndicator=NO;
    [self.view addSubview:imageScrollView];

    int i = 0;
    for ( i = 0; i <4; i++) {
        UIImageView *imageView = [[UIImageView alloc]initWithFrame:CGRectMake(320*i, 0, 320, 120)];
        imageView.image=[UIImage imageNamed:[NSString stringWithFormat:@"%i.jpg",i]];
        imageView.tag = 110 + i;
        imageView.userInteractionEnabled=YES;
        [imageScrollView addSubview:imageView];
    }

}
//加入白色的滑动条
-(void) addPageControl {
    pageControl = [[UIPageControl alloc]initWithFrame:CGRectMake(145, 190, 100, 40)];
    pageControl.numberOfPages =4;
    pageControl.tag = 101;
    pageControl.currentPage = 0;
    pageControl.backgroundColor=[UIColor clearColor];
    [self.view addSubview:pageControl];
}

#pragma -mark -UIPageViewControllerDelegate
-(void)changePageNumber
{
    pageControl.currentPage=pageControl.currentPage+1;
    if (pageControl.currentPage==3) {
        changePage = changePage+1;

    }
    if (changePage==2) {
        pageControl.currentPage=0;
        changePage=0;
    }

    [imageScrollView scrollRectToVisible:CGRectMake(pageControl.currentPage * 320.0, 65.0, 320.0, 218.0) animated:YES];

}
-(void) tap: (UITapGestureRecognizer*)sender{
    NSLog(@"tap %ld image",(long)pageControl.currentPage);
}

#pragma -mark -UIScrollViewDelegate
-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {
    int current = scrollView.contentOffset.x/320;
    NSLog(@"current:%d",current);
    pageControl.currentPage = current;
    if (pageControl.currentPage==3) {
        changePage = changePage+1;

    }
    if (changePage==2) {
        pageControl.currentPage=0;
        [imageScrollView scrollRectToVisible:CGRectMake(pageControl.currentPage * 320.0, 65.0, 320.0, 218.0) animated:YES];
        changePage=0;
    }

}
时间: 2024-10-07 23:47:09

自动滚动,自动显示下一个图像的相关文章

[C#]Winform下回车或Tab键自动切换下一个控件焦点

满足用户体验,在数据录入时,能在输入完一个信息后通过回车或Tab键自动的切换到下一个控件(字段). 在界面控件设计时,默认可以通过设置控件的TabIndex来实现.但在布局调整时或者是对输入的内容有选择性时,从用代码的方式来处理显得更好维护一点. 完整的实现方法如下: /// <summary> /// 回车.Tab键盘切换或执行操作 /// </summary> public sealed class TabEnter:IDisposable { private List<

Creating Dialogbased Win32 Application (4) / 创建基于对话框的Win32应用程序(四)Edit Control的应用、Unicode转ANSI、自动滚动 / Win32, VC++, Windows

创建基于对话框的Win32应用程序(四)——Edit Control的应用.Unicode转ANSI.自动滚动 之前的介绍中,我们用到了Button.Static Text.Checkbox这三个控件.这一节中我们将学习使用Edit Control(编辑框)控件,其中还包括Unicode转ANSI的方法.文本框自动滚动的功能等. 24.首先切换到Reasource View(Ctrl+Shift+E),找到待修改的主窗体,并从Toolbox(Ctrl+Atl+X)中添加Edit Control控

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

jQuery实现滚动自动显示隐藏导航

jQuery实现滚动自动显示隐藏导航貌似插件挺多了,Headroom.js.基于bootstrap的jquery.bootstrap-autohidingnavbar.js,jBar.js,但似乎也没必要那么麻烦,或者它们确实有其他优势,目前我还不是很清楚. 本文附件下载地址:http://pan.baidu.com/s/1qW7Vuji 正文 1.首先在你的页面引入jQuery.js包 jquery.min.js文件见附件<jquery.min.js> <script src=&quo

ip输入框键入.或者合法数字自动选择下一个输入框效果

<!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-wid

用 dbgrid 或 dbgrideh 如何让所显示数据自动滚动

procedure TForm1.Timer1Timer(Sender: TObject);varm:tmessage;begin m.Msg:=WM_VSCROLL; m.WParamLo:=SB_LINEDOWN; m.WParamHi:=1 ; m.LParam:=0; postmessage(self.DBGrid1.Handle,m.Msg,m.WParam,m.LParam); end; procedure TForm1.Button1Click(Sender: TObject);b

js input框输入1位数字后自动跳到下一个input框聚焦

// input框输入1位数字后自动跳到下一个input聚焦 function goNextInput(el){ var txts = document.querySelectorAll(el); for(var i = 0; i<txts.length;i++){ var t = txts[i]; t.index = i; t.setAttribute("readonly", true); t.onkeyup=function(){ this.value=this.value.

ios开发——实用技术篇&amp;图片无限滚动和自动滚动

初始化项目 1:自定义一个集成自Collection的Cell .h 1 #import <UIKit/UIKit.h> 2 @class iCocosNews; 3 @interface iCocosNewsCell : UICollectionViewCell 4 @property (nonatomic, strong) iCocosNews *news; 5 @end .m 1 #import "iCocosNewsCell.h" 2 #import "i

实现通知标题自动滚动

做了一个通知的消息自动滚动的小功能. 简单找了找资料代码入下: 设定div的高度和要滚动通知标题的高度相同,这里是25px. <style type="text/css"> ul,li{margin:0;padding:0} #scrollDiv{width:300px;height:25px;line-height:25px;border:#ccc 1px solid;overflow:hidden} #scrollDiv li{height:25px;padding-l