分页点例子

来源:互联网 发布:php shell exec不执行 编辑:程序博客网 时间:2024/05/09 04:01

#import <Foundation/Foundation.h>@interface PageControl : UIView//UIPageControl{UIImage *imagePageStateNormal;UIImage *imagePageStateHighlighted;NSInteger m_numberOfPages;NSInteger m_currentPage;}- (id)initWithFrame:(CGRect)frame;- (void)UpdateDots;//- (void)setNumberOfPages:(int)num;//- (void)setCurrentPage:(NSInteger)pageNum;@property (nonatomic, retain) UIImage *imagePageStateNormal;@property (nonatomic, retain) UIImage *imagePageStateHighlighted;@property (nonatomic) NSInteger m_numberOfPages;@property (nonatomic) NSInteger m_currentPage;@end#import "PageControl.h"@implementation HomePageControl// 实现部分@synthesize imagePageStateNormal;@synthesize imagePageStateHighlighted;@synthesize m_numberOfPages;@synthesize m_currentPage;#define AM_MIN_PAGESIZE 13//flush the view with the page changing- (void)setM_currentPage:(NSInteger)pageNum{/* super.currentPage = pageNum; [self updateDots]; //NSLog(@"setCurrentPage");*/m_currentPage = pageNum;[self UpdateDots];}- (id)initWithFrame:(CGRect)frame { // 初始化self = [super initWithFrame:frame];return self;}
//numberOfPages- (void)setM_numberOfPages:(int)num{NSArray *subview = self.subviews;// 获取所有子视图for (NSInteger i = 0; i < [subview count]; i++){UIImageView *dot = [subview objectAtIndex:i];// if (dot != nil && [dot superview] != nil){[dot removeFromSuperview];}}float posBegin = self.center.x - (num * AM_MIN_PAGESIZE) / 2;for (int i = 0; i < num; i++){UIImageView * tmpImgView = [[[UIImageView alloc]initWithFrame: CGRectMake(posBegin + i * AM_MIN_PAGESIZE, 30, 12, 12)] autorelease];[self addSubview:tmpImgView];}[self setM_currentPage:0];}- (void)setImagePageStateNormal:(UIImage *)image {// 设置正常状态点按钮的图片[imagePageStateNormal release];//NSLog(@"count is %d", [imagePageStateNormal retainCount]);imagePageStateNormal = [image retain];//NSLog(@"after count is %d", [imagePageStateNormal retainCount]);//[self updateDots];}- (void)setImagePageStateHighlighted:(UIImage *)image { // 设置高亮状态点按钮图片[imagePageStateHighlighted release];imagePageStateHighlighted = [image retain];//[self updateDots];}//响应点击事件- (void)endTrackingWithTouch:(UITouch *)touch withEvent:(UIEvent *)event { // 点击事件   //NSLog(@"touch");   //[super endTrackingWithTouch:touch withEvent:event];   //[self updateDots];}- (void)UpdateDots { // 更新显示所有的点按钮 //NSLog(@"update");if (imagePageStateNormal || imagePageStateHighlighted){NSArray *subview = self.subviews;// 获取所有子视图for (NSInteger i = 0; i < [subview count]; i++){UIImageView *dot = [subview objectAtIndex:i];//  //NSLog(@"qqqqqq point %d is %f === %f ", i, dot.frame.origin.x, dot.frame.size.width);dot.image = (m_currentPage == i ? imagePageStateNormal : imagePageStateHighlighted);//dot.frame = CGRectMake(dot.frame.origin.x, dot.frame.origin.y, dot.image.size.width, dot.image.size.height);//dot.frame = CGRectMake(posBegin + i * AM_MIN_PAGESIZE, dot.frame.origin.y, dot.image.size.width, dot.image.size.height);//NSLog(@"point %d is %f ===", i, dot.frame.origin.x);}}}- (void)dealloc { // 释放内存[imagePageStateNormal release];imagePageStateNormal = nil;[imagePageStateHighlighted release];imagePageStateHighlighted = nil;[super dealloc];}@end