您的位置:首页 > 产品设计 > UI/UE

UIScrollView

2015-08-05 19:48 495 查看
1.现在文件的 Build Setting 选项中将 ARC 改为 NO.



2.创建一个 MainViewController 的类.

3.将图片拖入文档.



4.在 AppDelegate.m 中做好准备工作.

#import "AppDelegate.h"
#import "MainViewController.h"
@interface AppDelegate ()

@end

@implementation AppDelegate

- (void)deallo
{
[_window release];
[super dealloc];
}

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
[_window release];

MainViewController *mainVC =[[MainViewController alloc] init];
self.window.rootViewController = mainVC;

return YES;
}


4.在 MainViewController.h 中.

#import "MainViewController.h"

// 创建两个宏定义.
#define WIDTH self.view.frame.size.width
#define HEIGHT self.view.frame.size.height

@interface MainViewController ()<UIScrollViewDelegate>

@end

@implementation MainViewController

- (void)viewDidLoad {
[super viewDidLoad]

// 它继承 UIView,可以通过创建 view 的四步对 ScrollView 进行创建.
UIScrollView *scrollV =[[UIScrollView alloc] initWithFrame:self.view.frame];
scrollV.backgroundColor = [UIColor greenColor];
[self.view addSubview:scrollV];
[scrollV release];

// 重要属性,这个属性可以让 scrollview 滚动起来.
// conteSize 设置 scrollView 的滚动范围.
scrollV.contentSize = CGSizeMake(WIDTH * 5, HEIGHT); // 因为有五张图片所以设定滚动范围为5.

// 设置按页来进行滚动.
scrollV.pagingEnabled = YES;

for (NSInteger i = 1; i < 6; i++)
{
// 找到图片的名字.
NSString *picName = [NSString stringWithFormat:@“%ld.jpg”, i];
// 通过图片的名字来创建UIImageView.
UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:picName]];
imageView.frame = CGRectMake(WIDTH * (i - 1), 0, WIDTH, HEIGHT);
// 把imageView放到scrollview上
[scrollV addSubview:imageView];
[imageView release];
}

// 通过设置偏移量,可以设置默认图片的位置.
scrollV.contentOffset = CGPointMake(WIDTH * 2, 0);

// 关闭边界回弹的效果
scrollV.bounces = NO;

// 水平和垂直的滚动条会作为两个子视图添加到 scrollView 的子视图里如果把滚动条小果关闭,这两个视图就不会添加到scrollView的子视图里.
NSLog(@“%@“, scrollV.subviews);




// 关闭滚动条(水平,垂直).
scrollV.showsHorizontalScrollIndicator = NO;
scrollV.showsVerticalScrollIndicator = NO;

// 设置代理人.
scrollV.delegate = self;

// 设置tag值.
scrollV.tag = 1000;

// 创建一个计时器.
[NSTimer scheduledTimerWithTimeInterval:2 target:self selector:@selector(changeImage) userInfo:nil repeats:YES];

}

// 只要滚动就会触发的协议方法.
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
NSLog(@“开始滚动”);
}

// 减速停止的时候会触发的协议方法.
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
NSLog(@“滚动停止”);
if (scrollView.contentOffset.x == 0) {
scrollView.contentOffset = CGPointMake(WIDTH * 5, 0);
}
if (scrollView.contentOffset.x == WIDTH * 6) {
scrollView.contentOffset = CGPointMake(WIDTH * 1, 0);
}
}

// 定时改变图片切换的方法.
- (void)changeImage
{
// 通过 tag 值找 scrollview.
UIScrollView *scrollView = (UIScrollView *)[self.view viewWithTag:1000];
// 通过计时器,让图片自动播放.
scrollView.contentOffset = CGPointMake(scrollView.contentOffset.x + WIDTH, 0);
// [scrollView setContentOffset:CGPointMake(scrollView.contentOffset.x + WIDTH, 0) animated:YES];
// 连续播放.
if (scrollView.contentOffset.x == WIDTH * 6) {
scrollView.contentOffset = CGPointMake(WIDTH, 0);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: