UIPageControl
给图片添加可以动的点
AppDelegate.m
#import "AppDelegate.h"
#import "RootViewController.h"
@interface AppDelegate ()
@end
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
self.window=[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.window.backgroundColor=[UIColor whiteColor];
[self.window makeKeyAndVisible];
[_window release];
RootViewController *vc=[[RootViewController alloc] init];
self.window.rootViewController=vc;
[vc release];
return YES;
}
RootViewController.m
#import "RootViewController.h"
#define HEIGHT self.view.frame.size.height
#define WIDTH self.view.frame.size.width
@interface RootViewController ()<UIScrollViewDelegate>
@property(nonatomic,retain)UIScrollView *scrollView;
@property(nonatomic,retain)UIPageControl *page;
@end
@implementation RootViewController
-(void)dealloc{
[_scrollView release];
[_page release];
[super dealloc];
}
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
self.view.backgroundColor=[UIColor cyanColor];
self.scrollView=[[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, WIDTH, HEIGHT/2+100)];
[self.view addSubview:self.scrollView];
[_scrollView release];
self.scrollView.pagingEnabled=YES;
self.scrollView.contentSize=CGSizeMake(7*WIDTH, 0);
for (NSInteger i = 1; i<8; i++) {
NSString *imageName=[NSString stringWithFormat:@"h%ld.jpeg",i];
UIImage *image=[UIImage imageNamed:imageName];
UIImageView *imageView=[[UIImageView alloc] initWithFrame:CGRectMake(WIDTH*(i-1), 0, WIDTH, HEIGHT/2+100)];
imageView.image=image;
[_scrollView addSubview:imageView];
[imageView release];
}
self.page=[[UIPageControl alloc] initWithFrame:CGRectMake(100, HEIGHT/2+100, 150, 40)];
self.page.backgroundColor=[UIColor orangeColor];
[self.view addSubview:self.page];
[self.page release];
//点的个数
self.page.numberOfPages=7;
//其他点的颜色
self.page.pageIndicatorTintColor=[UIColor redColor];
//当前点的颜色
self.page.currentPageIndicatorTintColor=[UIColor blackColor];
[self.page addTarget:self action:@selector(changePage:) forControlEvents:UIControlEventValueChanged];
self.scrollView.delegate=self;
//设置最大缩放比例
self.scrollView.maximumZoomScale=2;
//设置最小的缩放比例
self.scrollView.minimumZoomScale=0.5;
}
//控制缩放的方法
-(UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView{
UIView *view=scrollView.subviews[(NSInteger)scrollView.contentOffset.x/(NSInteger)WIDTH];
//只要进行缩放,系统就会修改scrollView的contentSize的值,所以当缩小之后,没办法进行拖拽
NSLog(@"%g",scrollView.contentSize.width);
return view;
}
//滑动图片点跟着动
-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{
self.page.currentPage=scrollView.contentOffset.x/WIDTH;
}
//移动点图片滑动
-(void)changePage:(UIPageControl *)page{
//偏移量 self.scrollView.contentOffset=CGPointMake(WIDTH*page.currentPage, 0);
}