自定义UIPageControl

继承UIPageControl,在.m文件重写setCurrentPage:


- (void) setCurrentPage:(NSInteger)page {
    [super setCurrentPage:page];
    
    for (NSUInteger subviewIndex = 0; subviewIndex < [self.subviews count]; subviewIndex++) {
        if (subviewIndex == page){
            UIImageView* subview = [self.subviews objectAtIndex:subviewIndex];
            CGSize size;
            size.height = 2;
            size.width = 10;
            [subview setFrame:CGRectMake(subview.frame.origin.x, subview.frame.origin.y, size.width, size.height)];
        } else {
            UIImageView* subview = [self.subviews objectAtIndex:subviewIndex];
            CGSize size;
            size.height = 2;
            size.width = 4;
            [subview setFrame:CGRectMake(subview.frame.origin.x, subview.frame.origin.y, size.width, size.height)];

        }
    }
}

在Controller使用:

-(void)initPageControl {
    self.pageControl = [[FQBuyCarOrderPageControl alloc]initWithFrame:CGRectMake(0, KHeightScreen -WidthAdaption(80), KWidthScreen, 10)];
    
    self.pageControl.numberOfPages = self.dataArr.count;
    self.pageControl.userInteractionEnabled = NO;
    [self.pageControl setValue:[UIImage imageNamed:@"buyCarOrder_mainColor"] forKeyPath:@"_currentPageImage"];
    [self.pageControl setValue:[UIImage imageNamed:@"buyCarOrder_grayColor"] forKeyPath:@"_pageImage"];

    [self.view insertSubview:self.pageControl aboveSubview:self.collectionView];

}

实现PageControl的切换:

-(void)scrollViewDidScroll:(UIScrollView *)scrollView {
    CGFloat offsetX = scrollView.contentOffset.x;
    NSInteger currentPageIndex = self.pageControl.currentPage;
    
    //当前静态 偏移量
    CGFloat currentOffset = self.pageControl.currentPage *KWidthScreen;
    if ((offsetX -currentOffset) >0) { ///-->向右滑
        if ((offsetX -currentOffset) > KWidthScreen/2 && currentPageIndex < (self.pageControl.numberOfPages -1)) {
            [self.pageControl setCurrentPage:currentPageIndex +1];
        }
    } else {
        if ((currentOffset -offsetX) > KWidthScreen/2 && currentPageIndex >0) {
            [self.pageControl setCurrentPage:currentPageIndex -1];
        }
    }    
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wuwuFQ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值