博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iPhone开发中UIPageControl实现自定义按钮
阅读量:4030 次
发布时间:2019-05-24

本文共 2618 字,大约阅读时间需要 8 分钟。

 i开发UIControl实现按钮是本文要介绍的内容,主要讲解的是来实现自定义按钮,有时候UIPageControl需要用到的,那么会导致上面的点按钮看不见或不清楚,我们可以通过该类重写来更换点按钮的现实  。

  实现思路如下.

  类继承UIPageControl :

 @terface PageControl : UIPageControl    
{   
    UI *imagePageNormal;   
    UIImage *imagePageStateHighlighted;   
}   
- ()tWith:(CGRect)frame;   
@property (nonatomic, retain) UIImage *imagePageStateNormal;   
@property (nonatomic, retain) UIImage *imagePageStateHighlighted;   
@end  

  了该类的函数

  用了两个UIImage保存两张图片, 大家知道的, UIPageCotrol的按钮分为两态, 一个是正常, 一个是高亮

  接下来实现该类以及重写父类:

 @interface MyPageControl(private)  // 声明一个私有方法, 该方法不允许直接使用    
 
- (void)upDots;   
@end   
@implenton MyPageControl  // 实现部分   
@synsize imagePageStateNormal;   
@synthesize imagePageStateHighlighted;   
- (id)initWithFrame:(CGRect)frame { // 初始化   
    self = [super initWithFrame:frame];   
    return self;   
}   
- (void)ImagePageStateNormal:(UIImage *)image {  // 正常点按钮的图片   
    [imagePageStateHighlighted release];   
    imagePageStateHighlighted = [image retain];   
    [self updateDots];   
}   
- (void)setImagePageStateHighlighted:(UIImage *)image { // 设置高亮状态点按钮图片   
    [imagePageStateNormal release];   
    imagePageStateNormal = [image retain];   
    [self updateDots];   
}   
- (void)endTrackingWith:(Uouch *)touch Event:(Uvent *)event { // 点击   
    [super endTrackingWithTouch:touch withEvent:event];   
    [self updateDots];   
}   
- (void)updateDots { // 显示所有的点按钮   
    if (imagePageStateNormal || imagePageStateHighlighted)   
    {   
        Nrray *subview = self.subviews;  // 获取所有子   
        for (NSInteger i = 0; i < [subview count]; i++)   
        {   
            UIImage *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 Color];   
pageControl.numberOfPages = 5;   
pageControl.currentPage = 0;   
[pageControl setImagePageStateNormal:[UIImage imageNamed:@"pageControlStateNormal."]];   
[pageControl setImagePageStateHighlighted:[UIImage imageNamed:@"pageControlStateHighlighted.png"]];   
[self.view addSubview:pageControl];   
[pageControl release];  

转载地址:http://akrbi.baihongyu.com/

你可能感兴趣的文章
iphone开发之SDK研究(待续)
查看>>
计算机网络复习要点
查看>>
Variable property attributes or Modifiers in iOS
查看>>
NSNotificationCenter 用法总结
查看>>
C primer plus 基础总结(一)
查看>>
剑指offer算法题分析与整理(一)
查看>>
剑指offer算法题分析与整理(三)
查看>>
Ubuntu 13.10使用fcitx输入法
查看>>
pidgin-lwqq 安装
查看>>
mint/ubuntu安装搜狗输入法
查看>>
C++动态申请数组和参数传递问题
查看>>
opencv学习——在MFC中读取和显示图像
查看>>
retext出现Could not parse file contents, check if you have the necessary module installed解决方案
查看>>
pyQt不同窗体间的值传递(一)——对话框关闭时返回值给主窗口
查看>>
linux mint下使用外部SMTP(如网易yeah.net)发邮件
查看>>
北京联通华为光猫HG8346R破解改桥接
查看>>
python使用win32*模块模拟人工操作——城通网盘下载器(一)
查看>>
python append 与浅拷贝
查看>>
Matlab与CUDA C的混合编程配置出现的问题及解决方案
查看>>
python自动化工具之pywinauto(零)
查看>>