分页点例子

#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


 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值