自定义UIPageControl 的Circle 与其他实现方式有几行代码改动,亲自试过

来源:互联网 发布:英雄杀官职怎么算法 编辑:程序博客网 时间:2024/06/04 18:01

#import "ARTipsPageControl.h"@interface ARTipsPageControl (){        UIImage *_currentPageImage;        UIImage *_pageImage;    }@end@implementation ARTipsPageControl- (id)initWithFrame:(CGRect)frame withCurrentPageImage:(NSString *)currentPageImageName withPageImage:(NSString *)pageImageName{    self = [superinitWithFrame:frame];    if (self) {        //其他小点点图片                _currentPageImage = [UIImageimageNamed:currentPageImageName];                //当前小点点图片                _pageImage = [UIImageimageNamed:pageImageName];    }    returnself;}-(void)updateCircleImages{        for (int i =0; i < [self.subviewscount]; i++) {                UIView* circleImageView = [self.subviewsobjectAtIndex:i];                CGSize size =_currentPageImage.size;                [circleImageView setFrame:CGRectMake(circleImageView.frame.origin.x, circleImageView.frame.origin.y, size.width, size.width)];                if (i ==self.currentPage){            circleImageView.backgroundColor = [UIColorcolorWithPatternImage:_currentPageImage];                    }else{            circleImageView.backgroundColor = [UIColorcolorWithPatternImage:_pageImage];        }        //不会执行下列方法        if ([circleImageViewrespondsToSelector:@selector(setImage:)]) {            if (i ==self.currentPage){                ((UIImageView *)circleImageView).image =_currentPageImage;                            }else{                ((UIImageView *)circleImageView).image =_pageImage;            }        }    }}//重写current方法-(void)setCurrentPage:(NSInteger)page{            [supersetCurrentPage:page];        [selfupdateCircleImages];    }- (void)setNumberOfPages:(NSInteger)numberOfPages{        [supersetNumberOfPages:numberOfPages];        [selfupdateCircleImages];    }@end


0 0
原创粉丝点击