iPhone开发中UIPageControl实现自定义按钮
来源:互联网 发布:html5 微信支付源码 编辑:程序博客网 时间:2024/05/16 15:48
iPhone开发中UIPageControl实现自定义按钮是本文要介绍的内容,主要讲解的是来实现自定义按钮,有时候UIPageControl需要用到白色的背景,那么会导致上面的点按钮看不见或不清楚,我们可以通过继承该类重写函数来更换点按钮的图片现实 。
实现思路如下.
新建类继承UIPageControl :
- @interface MyPageControl : UIPageControl
- {
- UIImage *imagePageStateNormal;
- UIImage *imagePageStateHighlighted;
- }
- - (id)initWithFrame:(CGRect)frame;
- @property (nonatomic, retain) UIImage *imagePageStateNormal;
- @property (nonatomic, retain) UIImage *imagePageStateHighlighted;
- @end
声明了初始化该类的函数
用了两个UIImage保存两张图片, 大家知道的, UIPageCotrol的按钮分为两态, 一个是正常, 一个是高亮
接下来实现该类以及重写父类方法:
- @interface MyPageControl(private) // 声明一个私有方法, 该方法不允许对象直接使用
- - (void)updateDots;
- @end
- @implementation MyPageControl // 实现部分
- @synthesize imagePageStateNormal;
- @synthesize imagePageStateHighlighted;
- - (id)initWithFrame:(CGRect)frame { // 初始化
- self = [super initWithFrame:frame];
- return self;
- }
- - (void)setImagePageStateNormal:(UIImage *)image { // 设置正常状态点按钮的图片
- [imagePageStateHighlighted release];
- imagePageStateHighlighted = [image retain];
- [self updateDots];
- }
- - (void)setImagePageStateHighlighted:(UIImage *)image { // 设置高亮状态点按钮图片
- [imagePageStateNormal release];
- imagePageStateNormal = [image retain];
- [self updateDots];
- }
- - (void)endTrackingWithTouch:(UITouch *)touch withEvent:(UIEvent *)event { // 点击事件
- [super endTrackingWithTouch:touch withEvent:event];
- [self updateDots];
- }
- - (void)updateDots { // 更新显示所有的点按钮
- if (imagePageStateNormal || imagePageStateHighlighted)
- {
- NSArray *subview = self.subviews; // 获取所有子视图
- for (NSInteger i = 0; i < [subview count]; i++)
- {
- UIImageView *dot = [subview objectAtIndex:i]; // 以下不解释, 看了基本明白
- dot.image = self.currentPage == i ? imagePageStateNormal : imagePageStateHighlighted;
- }
- }
- }
- - (void)dealloc { // 释放内存
- [imagePageStateNormal release], imagePageStateNormal = nil;
- [imagePageStateHighlighted release], imagePageStateHighlighted = nil;
- [super dealloc];
- }
- @end
OK, 在添加处加入以下来实例化该对象代码:
- MyPageControl *pageControl = [[MyPageControl alloc] initWithFrame:CGRectMake(0,0, 200, 30)];
- pageControl.backgroundColor = [UIColor clearColor];
- pageControl.numberOfPages = 5;
- pageControl.currentPage = 0;
- [pageControl setImagePageStateNormal:[UIImage imageNamed:@"pageControlStateNormal.png"]];
- [pageControl setImagePageStateHighlighted:[UIImage imageNamed:@"pageControlStateHighlighted.png"]];
- [self.view addSubview:pageControl];
- [pageControl release];
- iPhone开发中UIPageControl实现自定义按钮
- iphone UIPageControl实现自定义按钮
- UIPageControl实现自定义按钮
- UIPageControl实现自定义按钮
- UIPageControl实现自定义按钮
- 重写UIPageControl实现自定义按钮
- 重写UIPageControl实现自定义按钮
- 重写UIPageControl实现自定义按钮
- iphone开发之自定义UIPageControl小图标
- iPhone开发之UIPageControl
- iPhone开发之UIPageControl
- UIPageControl 实现自定义样式
- UIPageControl 实现自定义样式
- iPhone SDK开发基础之UIPageControl编程
- iOS开发中自定义按钮
- UIPageControl 圆点背景图片的自定义实现
- 自定义UIPageControl
- 自定义UIPageControl
- U盘插入拔出检测
- XAML实例教程系列 - 类型转换器(Type Converter)
- android 进程优先级
- mongodb 复制集之同步机制
- weblogic 9.2 deploy 基本过程
- iPhone开发中UIPageControl实现自定义按钮
- Linux内核部件分析--连通世界的list
- java ping ip地址
- 最新历史版本 :Android 重力感应SensorManager Demo (转)
- vss2008注册Microsoft.WindowsCE.Forms.dll
- Ubuntu12.04 LTS安装java6 jdk 【验证可用】
- 应该被记住的天才,写在图灵诞辰100周年
- Linux内核部件分析--原子性操作atomic_t
- 图像的几何不变矩