一,效果图。
二,工程图。
三,代码。
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.
}
【代码笔记】iOS-电影上的花絮,自动滚动的更多相关文章
-
IOS开发UI篇之自动滚动图片
我们在做项目是有时候会遇到设置自动滚动图片,所以我自己也遇到过两次.觉得他是一个挺有意思东西,所以做了下总结 DEMO: .h #import <UIKit/UIKit.h> @inter ...
-
关于html5 audio 标签在ios系统上不能正常自动播放的解决办法
由于 iOS Safari 限制不允许 audio autoplay, 必须用户主动交互(例如 click)后才能播放 audio, 因此我们通过一个用户交互事件来主动 play 一下 audio. ...
-
【代码笔记】iOS-UITableView上的button点击事件
代码. ViewController.h #import <UIKit/UIKit.h> @interface ViewController : UIViewController < ...
-
【代码笔记】iOS-屏幕根据键盘自动的变化高度
一,效果图. 二,代码. ViewController.h #import <UIKit/UIKit.h> @interface ViewController : UIViewContro ...
-
笔记-iOS 视图控制器转场详解(上)
这是一篇长文,详细讲解了视图控制器转场的方方面面,配有详细的示意图和代码,为了使得文章在微信公众号中易于阅读,seedante 辛苦将大量长篇代码用截图的方式呈现,另外作者也在 Github 上附上了 ...
-
iOS如何上传代码到Github
iOS如何上传代码到Github 很多iOS开发者想开源自己的代码或者demo,开源到Github是个不错的选择,那么如何上传我们的代码到Github,令所有人可以下载使用呢?这里我们的目的很明确,就 ...
-
【原】iOS动态性(四):一行代码实现iOS序列化与反序列化(runtime)
为取得更好的排版效果,本文同样发布在简书上,强烈建议跳转到[1]http://www.jianshu.com/p/fed1dcb1ac9f 一.变量声明 为便于下文讨论,提前创建父类Biology以及 ...
-
一行代码实现iOS序列化与反序列化(runtime)
一.变量声明 为便于下文讨论,提前创建父类Biology以及子类Person: Biology: @interface Biology : NSObject { NSInteger *_hairCou ...
-
一行代码实现iOS序列化与反序列化
一.变量声明 为便于下文讨论,提前创建父类Biology以及子类Person: Biology: @interface Biology : NSObject { NSInteger *_hairCou ...
-
SpringMVC:学习笔记(8)——文件上传
SpringMVC--文件上传 说明: 文件上传的途径 文件上传主要有两种方式: 1.使用Apache Commons FileUpload元件. 2.利用Servlet3.0及其更高版本的内置支持. ...
随机推荐
-
语义网 (Semantic Web)和 web 3.0
语义网=有意义的网络. "如果说 HTML 和 WEB 将整个在线文档变成了一本巨大的书,那么 RDF, schema, 和 inference languages 将会使世界上所有的数据变 ...
-
shh简化
对于SSH框架中部分的操作简化我分为两大类: 一:操作 1. 在SSH的struts.xml里 name="Action类_*" class="注入的实例"(同 ...
-
.net发邮件【转】
对于.NET而言,从2.0开始,发邮件已经是一件非常easy 的事了.下面我给出一个用C#群发邮件的实例,做了比较详细的注解,希望对有需要的朋友有所help. // 引入命名空间using Syste ...
-
回文串---Hotaru&#39;s problem
HDU 5371 Description Hotaru Ichijou recently is addicated to math problems. Now she is playing wit ...
-
IOS源码封装成.bundle和.a文件,以及加入xib的具体方法,翻遍网络,仅此一家完美翻译!! IOS7!!(3) 完美结局
以上翻译有误解之处,现在简单做法如下: 经过深入研究,才感觉明白了内部机制,现在简单介绍于下,主要步骤:xcode5 创建库项目,删掉测试文件和默认创建的类,添加viewController类带xib ...
-
Git遇到的一点错误
[背景] 折腾: [记录]将googlecode上面的crifanLib迁移到Github上 期间出错: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 ...
-
使用Eclipse设定Android开发环境
使用Eclipse设定Android开发环境 花了大概几天的时间最终搭建好了开发Android的环境了! 我是使用Eclipse +ADT顺利地搭建Android开发环境的. 如今Google以及An ...
-
使用storyboard设置button边框属性(颜色,宽度,圆角)
通常使用Category时.仅仅能加入方法,不可加入属性.可是在使用Storyboard时我们可能会使用到keyPath,这里设置的key都须要是所设置视图的属性值.而且类型有所限制. 比如:我如今有 ...
-
Kafka 1.0.0集群增加节点
原有环境 主机名 IP 地址 安装路径 系统 sht-sgmhadoopdn-01 172.16.101.58 /opt/kafka_2.12-1.0.0 /opt/kafka(软连接) CentOS ...
-
Linux 使用 ssh 命令远程连接另一台 Linux
用 Linux 系统的 ssh 命令远程连接另一台 Linux 机器的命令 #ssh 用户名@主机名(IP地址) 例: #ssh root@10.41.24.138 ...