正常来讲UIPageControl是不能显示图片的
[UIColorcolorWithPatternImage:[UIImageimageNamed:@"title.png"]];
这个方法可以是可以、但是有时也会出现些许误差、然后很容易被UI找事~例如:
于是只好自定义一个UIPageControl
网上有很多自定义的帖子、拿来借鉴了一下、核心代码如下:
首先、颠覆setCurrentPage方法、让每次修改page的时候设置圆点:
-(void) setCurrentPage:(NSInteger)page
{
[super setCurrentPage:page];
[self setUpDots];
}
然后、把control上每个圆点上都添加一个imageView、并且根据情况设置图片
for (int i=0; i<[self.subviews count]; i++) {
//圆点
UIView* dot = [self.subviews objectAtIndex:i];
//添加imageView
if ([dot.subviews count] == 0) {
UIImageView * view = [[UIImageView alloc]initWithFrame:dot.bounds];
[dot addSubview:view];
};
//配置imageView
UIImageView * view = dot.subviews[0];
if (i==self.currentPage) {
view.image=self.currentImage;
dot.backgroundColor = [UIColor clearColor];
}else {
view.image=self.defaultImage;
dot.backgroundColor = [UIColor clearColor];
}
}
然后、就没啥技术含量了。大概~
然后、自己又在项目里进行了一些封装。添加了一些基本功能
顺手做了个小Demo、有需要可以自取。下载链接