IOS 学习笔记,scrollView添加分页

 1 #import "ViewController.h"
 2
 3 #define Width self.view.frame.size.width
 4 #define Height self.view.frame.size.height
 5 #define viewH 200
 6 @interface ViewController ()<UIScrollViewDelegate>
 7
 8
 9 @property(nonatomic,retain) UIScrollView * scrollView;
10 @property(nonatomic,retain) UIPageControl * pageControl;
11
12 @end
13
14 @implementation ViewController
15
16
17
18 #pragma mark - View lifecycle
19
20
21 - (void)viewDidLoad
22 {
23
24     [super viewDidLoad];
25     // Do any additional setup after loading the view, typically from a nib.
26
27     self.scrollView = [[UIScrollView alloc]initWithFrame:CGRectMake(0, Height-viewH, Width, viewH)];
28     self.scrollView.delegate = self;
29     [self.scrollView setContentSize:CGSizeMake(Width*4, viewH)];
30     //self.scrollView.showsHorizontalScrollIndicator = YES;
31     self.scrollView.showsVerticalScrollIndicator = YES;
32     self.scrollView.pagingEnabled = YES;
33     [self.scrollView setBackgroundColor:[UIColor redColor]];
34
35     NSArray*arr =[[NSArray alloc]initWithObjects:[UIColor grayColor],[UIColor greenColor],[UIColor blueColor],[UIColor yellowColor], nil];
36     for (int i=0; i<4; i++) {
37         UIView * view1 = [[UIView alloc]initWithFrame:CGRectMake(Width*i, 0, Width, viewH)];
38         [view1 setBackgroundColor:arr[i]];
39         [self.scrollView addSubview:view1];
40
41     }
42     [self.view addSubview:self.scrollView];
43
44
45     self.pageControl = [[UIPageControl alloc]initWithFrame:CGRectMake(0, 0, 200, 20)];
46     self.pageControl.center = CGPointMake(Width/2, Height-20);
47
48     self.pageControl.numberOfPages = 4;
49     [self.pageControl addTarget:self action:@selector(pageChanged:) forControlEvents:UIControlEventValueChanged];
50
51     [self.view addSubview:self.pageControl];
52 }
53 -(void)pageChanged:(UIPageControl*)page
54 {
55     int p = (int)page.currentPage;
56     [self.scrollView scrollRectToVisible:CGRectMake(Width*p, 0, Width, viewH) animated:YES];
57 }
58
59 -(void)scrollViewDidScroll:(UIScrollView*)scrollView
60 {
61     CGFloat pageWith = scrollView.frame.size.width;
62     int page = floor((scrollView.contentOffset.x - pageWith/2)/pageWith)+1;
63     self.pageControl.currentPage = page;
64 }
65
66
67
68
69
70 - (void)didReceiveMemoryWarning {
71     [super didReceiveMemoryWarning];
72     // Dispose of any resources that can be recreated.
73 }
74
75 @end
时间: 2025-01-13 12:54:39

IOS 学习笔记,scrollView添加分页的相关文章

IOS学习笔记 -- scrollView和tableView整理

scrollView:1. 介绍scrollView一些属性 1>.要想使用scrollView必须做两件事 1).设置scrollView内容 2).设置contentSize (滚动范围) 2>.其他属性 1). contentOffset(滚动位置) 2). contentInset(额外增加的滚动区域) 3). bounces (设置UIScrollView是否需要弹簧效果) 4). crollEnabled (设置UIScrollView是否能滚动) 5). showsHorizon

iOS: 学习笔记, 添加一个带界面约束的控制器

1. 创建一个空iOS应用程序(Empty Application). 2. 添加加控制器类. 修改控制器类的viewDidLoad 1 - (void)viewDidLoad 2 { 3 [super viewDidLoad]; 4 //创建标题 5 UILabel *header = [[UILabel alloc] init]; 6 header.text = @"欢迎来到我的世界!"; 7 header.textAlignment = NSTextAlignmentCenter

iOS学习笔记-精华整理

iOS学习笔记总结整理 一.内存管理情况 1- autorelease,当用户的代码在持续运行时,自动释放池是不会被销毁的,这段时间内用户可以安全地使用自动释放的对象.当用户的代码运行告一段 落,开始等待用户的操作,自动释放池就会被释放掉(调用dealloc),池中的对象都会收到一个release,有可能会因此被销毁. 2-成员属性:     readonly:不指定readonly,默认合成getter和setter方法.外界毫不关心的成员,则不要设置任何属性,这样封装能增加代码的独立性和安全

IOS学习笔记 -- Modal和Quartz2D

一. Modal1.Modal的默认效果:新控制器从屏幕的最底部往上钻,直到盖住之前的控制器为止;Modal只是改变了View的现实,没有改变rootViewController 2.常用方法1>.以Modal的形式展示控制器- (void)presentViewController:(UIViewController *)viewControllerToPresent animated: (BOOL)flag completion:(void (^)(void))completion2>.关

iOS学习笔记(2)— UIView用户事件响应

iOS学习笔记(2)— UIView用户事件响应 UIView除了负责展示内容给用户外还负责响应用户事件.本章主要介绍UIView用户交互相关的属性和方法. 1.交互相关的属性 userInteractionEnabled 默认是YES ,如果设置为NO则不响应用户事件,并且把当前控件从事件队列中删除.也就是说设置了userInterfaceEnabled属性的视图会打断响应者链导致该view的subview都无法响应事件. multipleTouchEnabled  默认是NO,如果设置为YE

IOS学习笔记 -- 多线程

多线程1.多线程的原理 1>.同一时间,CPU只能处理1条线程,只有1条线程在工作(执行) 2>.多线程并发(同时)执行,其实是CPU快速地在多条线程之间调度(切换) 3>.如果CPU调度线程的时间足够快,就造成了多线程并发执行的假象如果线程非常非常多,会发生: 1>.CPU会在N多线程之间调度,CPU会累死,消耗大量的CPU资源 2>.每条线程被调度执行的频次会降低(线程的执行效率降低) 2.多线程的优缺点 1>.多线程的优点 能适当提高程序的执行效率 能适当提高资源

iOS: 学习笔记, 用代码驱动自动布局实例

iOS自动布局是设置iOS界面的利器. 本实例展示了如何使用自动布局语言设置水平布局, 垂直布局 1. 创建空白iOS项目 2. 添加一个控制器类, 修改YYAppDelegate.m文件 #import "YYAppDelegate.h" #import "YYViewController.h" @implementation YYAppDelegate - (BOOL)application:(UIApplication *)application didFin

iOS学习笔记---oc语言第五天

字典,数组 ,集排序 一.字典类 存储以下数据 name:张三; sex:男;age:18 film:风暴; playcount:10000次;price:60元 字典类用于保存具有映射关系(key-value对)的数据 对于“name:张三”来讲,key就是“name”,key对应的value是“张 三” 一个key-value对认为是一个元素(实体),字典是存储key-value对 的容器. 特点: 与数组不同,数组靠下标存取数据,数组的下标是唯一的. 字典靠key存取元素.key不能重复,

iOS: 学习笔记, 用代码驱动自动布局实例(swift)

iOS自动布局是设置iOS界面的利器.本实例展示了如何使用自动布局语言设置水平布局, 垂直布局1. 创建空白iOS项目(swift)2. 添加一个控制器类, 修改YYAppDelegate.swift文件 @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? func application(application: UIApplication, didFi