123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741 |
- //
- // SDCycleScrollView.m
- // SDCycleScrollView
- //
- // Created by aier on 15-3-22.
- // Copyright (c) 2015年 GSD. All rights reserved.
- //
- /*
-
- *********************************************************************************
- *
- * 🌟🌟🌟 新建SDCycleScrollView交流QQ群:185534916 🌟🌟🌟
- *
- * 在您使用此自动轮播库的过程中如果出现bug请及时以以下任意一种方式联系我们,我们会及时修复bug并
- * 帮您解决问题。
- * 新浪微博:GSD_iOS
- * Email : gsdios@126.com
- * GitHub: https://github.com/gsdios
- *
- * 另(我的自动布局库SDAutoLayout):
- * 一行代码搞定自动布局!支持Cell和Tableview高度自适应,Label和ScrollView内容自适应,致力于
- * 做最简单易用的AutoLayout库。
- * 视频教程:http://www.letv.com/ptv/vplay/24038772.html
- * 用法示例:https://github.com/gsdios/SDAutoLayout/blob/master/README.md
- * GitHub:https://github.com/gsdios/SDAutoLayout
- *********************************************************************************
-
- */
- #import "SDCycleScrollView.h"
- #import "SDCollectionViewCell.h"
- #import "UIView+SDExtension.h"
- #import "TAPageControl.h"
- #import "UIImageView+WebCache.h"
- #import "SDImageCache.h"
- #import "SDWebImageManager.h"
- #define kCycleScrollViewInitialPageControlDotSize CGSizeMake(10, 10)
- NSString * const ID = @"cycleCell";
- @interface SDCycleScrollView () <UICollectionViewDataSource, UICollectionViewDelegate>
- @property (nonatomic, weak) UICollectionView *mainView; // 显示图片的collectionView
- @property (nonatomic, weak) UICollectionViewFlowLayout *flowLayout;
- @property (nonatomic, strong) NSArray *imagePathsGroup;
- @property (nonatomic, weak) NSTimer *timer;
- @property (nonatomic, assign) NSInteger totalItemsCount;
- @property (nonatomic, weak) UIControl *pageControl;
- @property (nonatomic, strong) UIImageView *backgroundImageView; // 当imageURLs为空时的背景图
- @end
- @implementation SDCycleScrollView
- - (instancetype)initWithFrame:(CGRect)frame
- {
- if (self = [super initWithFrame:frame]) {
- [self initialization];
- [self setupMainView];
- }
- return self;
- }
- - (void)awakeFromNib
- {
- [super awakeFromNib];
- [self initialization];
- [self setupMainView];
- }
- - (void)initialization
- {
- _pageControlAliment = SDCycleScrollViewPageContolAlimentCenter;
- _autoScrollTimeInterval = 7.0;
- _titleLabelTextColor = [UIColor whiteColor];
- _titleLabelTextFont= [UIFont systemFontOfSize:14];
- _titleLabelBackgroundColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:0.5];
- _titleLabelHeight = 30;
- _autoScroll = YES;
- _infiniteLoop = YES;
- _showPageControl = YES;
- _pageControlDotSize = kCycleScrollViewInitialPageControlDotSize;
- _pageControlBottomOffset = 0;
- _pageControlRightOffset = 0;
- _pageControlStyle = SDCycleScrollViewPageContolStyleClassic;
- _hidesForSinglePage = YES;
- _currentPageDotColor = [UIColor whiteColor];
- _pageDotColor = [UIColor lightGrayColor];
- _bannerImageViewContentMode = UIViewContentModeScaleToFill;
-
- self.backgroundColor = [UIColor lightGrayColor];
-
- }
- + (instancetype)cycleScrollViewWithFrame:(CGRect)frame imageNamesGroup:(NSArray *)imageNamesGroup
- {
- SDCycleScrollView *cycleScrollView = [[self alloc] initWithFrame:frame];
- cycleScrollView.localizationImageNamesGroup = [NSMutableArray arrayWithArray:imageNamesGroup];
- return cycleScrollView;
- }
- + (instancetype)cycleScrollViewWithFrame:(CGRect)frame shouldInfiniteLoop:(BOOL)infiniteLoop imageNamesGroup:(NSArray *)imageNamesGroup
- {
- SDCycleScrollView *cycleScrollView = [[self alloc] initWithFrame:frame];
- cycleScrollView.infiniteLoop = infiniteLoop;
- cycleScrollView.localizationImageNamesGroup = [NSMutableArray arrayWithArray:imageNamesGroup];
- return cycleScrollView;
- }
- + (instancetype)cycleScrollViewWithFrame:(CGRect)frame imageURLStringsGroup:(NSArray *)imageURLsGroup
- {
- SDCycleScrollView *cycleScrollView = [[self alloc] initWithFrame:frame];
- cycleScrollView.imageURLStringsGroup = [NSMutableArray arrayWithArray:imageURLsGroup];
- return cycleScrollView;
- }
- + (instancetype)cycleScrollViewWithFrame:(CGRect)frame delegate:(id<SDCycleScrollViewDelegate>)delegate placeholderImage:(UIImage *)placeholderImage
- {
- SDCycleScrollView *cycleScrollView = [[self alloc] initWithFrame:frame];
- cycleScrollView.delegate = delegate;
- cycleScrollView.placeholderImage = placeholderImage;
-
- return cycleScrollView;
- }
- // 设置显示图片的collectionView
- - (void)setupMainView
- {
- UICollectionViewFlowLayout *flowLayout = [[UICollectionViewFlowLayout alloc] init];
- flowLayout.minimumLineSpacing = 0;
- flowLayout.scrollDirection = UICollectionViewScrollDirectionHorizontal;
- _flowLayout = flowLayout;
-
- UICollectionView *mainView = [[UICollectionView alloc] initWithFrame:self.bounds collectionViewLayout:flowLayout];
- mainView.backgroundColor = [UIColor clearColor];
- mainView.pagingEnabled = YES;
- mainView.showsHorizontalScrollIndicator = NO;
- mainView.showsVerticalScrollIndicator = NO;
- [mainView registerClass:[SDCollectionViewCell class] forCellWithReuseIdentifier:ID];
- mainView.dataSource = self;
- mainView.delegate = self;
- mainView.scrollsToTop = NO;
- [self addSubview:mainView];
- _mainView = mainView;
- }
- #pragma mark - properties
- - (void)setPlaceholderImage:(UIImage *)placeholderImage
- {
- _placeholderImage = placeholderImage;
-
- if (!self.backgroundImageView) {
- UIImageView *bgImageView = [UIImageView new];
- bgImageView.contentMode = UIViewContentModeScaleAspectFit;
- [self insertSubview:bgImageView belowSubview:self.mainView];
- self.backgroundImageView = bgImageView;
- }
-
- self.backgroundImageView.image = placeholderImage;
- }
- - (void)setPageControlDotSize:(CGSize)pageControlDotSize
- {
- _pageControlDotSize = pageControlDotSize;
- [self setupPageControl];
- if ([self.pageControl isKindOfClass:[TAPageControl class]]) {
- TAPageControl *pageContol = (TAPageControl *)_pageControl;
- pageContol.dotSize = pageControlDotSize;
- }
- }
- - (void)setShowPageControl:(BOOL)showPageControl
- {
- _showPageControl = showPageControl;
-
- _pageControl.hidden = !showPageControl;
- }
- - (void)setCurrentPageDotColor:(UIColor *)currentPageDotColor
- {
- _currentPageDotColor = currentPageDotColor;
- if ([self.pageControl isKindOfClass:[TAPageControl class]]) {
- TAPageControl *pageControl = (TAPageControl *)_pageControl;
- pageControl.dotColor = currentPageDotColor;
- } else {
- UIPageControl *pageControl = (UIPageControl *)_pageControl;
- pageControl.currentPageIndicatorTintColor = currentPageDotColor;
- }
-
- }
- - (void)setPageDotColor:(UIColor *)pageDotColor
- {
- _pageDotColor = pageDotColor;
-
- if ([self.pageControl isKindOfClass:[UIPageControl class]]) {
- UIPageControl *pageControl = (UIPageControl *)_pageControl;
- pageControl.pageIndicatorTintColor = pageDotColor;
- }
- }
- - (void)setCurrentPageDotImage:(UIImage *)currentPageDotImage
- {
- _currentPageDotImage = currentPageDotImage;
-
- if (self.pageControlStyle != SDCycleScrollViewPageContolStyleAnimated) {
- self.pageControlStyle = SDCycleScrollViewPageContolStyleAnimated;
- }
-
- [self setCustomPageControlDotImage:currentPageDotImage isCurrentPageDot:YES];
- }
- - (void)setPageDotImage:(UIImage *)pageDotImage
- {
- _pageDotImage = pageDotImage;
-
- if (self.pageControlStyle != SDCycleScrollViewPageContolStyleAnimated) {
- self.pageControlStyle = SDCycleScrollViewPageContolStyleAnimated;
- }
-
- [self setCustomPageControlDotImage:pageDotImage isCurrentPageDot:NO];
- }
- - (void)setCustomPageControlDotImage:(UIImage *)image isCurrentPageDot:(BOOL)isCurrentPageDot
- {
- if (!image || !self.pageControl) return;
-
- if ([self.pageControl isKindOfClass:[TAPageControl class]]) {
- TAPageControl *pageControl = (TAPageControl *)_pageControl;
- if (isCurrentPageDot) {
- pageControl.currentDotImage = image;
- } else {
- pageControl.dotImage = image;
- }
- }
- }
- - (void)setInfiniteLoop:(BOOL)infiniteLoop
- {
- _infiniteLoop = infiniteLoop;
-
- if (self.imagePathsGroup.count) {
- self.imagePathsGroup = self.imagePathsGroup;
- }
- }
- -(void)setAutoScroll:(BOOL)autoScroll{
- _autoScroll = autoScroll;
-
- [self invalidateTimer];
-
- if (_autoScroll) {
- [self setupTimer];
- }
- }
- - (void)setScrollDirection:(UICollectionViewScrollDirection)scrollDirection
- {
- _scrollDirection = scrollDirection;
-
- _flowLayout.scrollDirection = scrollDirection;
- }
- - (void)setAutoScrollTimeInterval:(CGFloat)autoScrollTimeInterval
- {
- _autoScrollTimeInterval = autoScrollTimeInterval;
-
- [self setAutoScroll:self.autoScroll];
- }
- - (void)setPageControlStyle:(SDCycleScrollViewPageContolStyle)pageControlStyle
- {
- _pageControlStyle = pageControlStyle;
-
- [self setupPageControl];
- }
- - (void)setImagePathsGroup:(NSArray *)imagePathsGroup
- {
- [self invalidateTimer];
-
- _imagePathsGroup = imagePathsGroup;
-
- _totalItemsCount = self.infiniteLoop ? self.imagePathsGroup.count * 100 : self.imagePathsGroup.count;
-
- if (imagePathsGroup.count != 1) {
- self.mainView.scrollEnabled = YES;
- [self setAutoScroll:self.autoScroll];
- } else {
- self.mainView.scrollEnabled = NO;
- }
-
- [self setupPageControl];
- [self.mainView reloadData];
- }
- - (void)setImageURLStringsGroup:(NSArray *)imageURLStringsGroup
- {
- _imageURLStringsGroup = imageURLStringsGroup;
-
- NSMutableArray *temp = [NSMutableArray new];
- [_imageURLStringsGroup enumerateObjectsUsingBlock:^(NSString * obj, NSUInteger idx, BOOL * stop) {
- NSString *urlString;
- if ([obj isKindOfClass:[NSString class]]) {
- urlString = obj;
- } else if ([obj isKindOfClass:[NSURL class]]) {
- NSURL *url = (NSURL *)obj;
- urlString = [url absoluteString];
- }
- if (urlString) {
- [temp addObject:urlString];
- }
- }];
- self.imagePathsGroup = [temp copy];
- }
- - (void)setLocalizationImageNamesGroup:(NSArray *)localizationImageNamesGroup
- {
- _localizationImageNamesGroup = localizationImageNamesGroup;
- self.imagePathsGroup = [localizationImageNamesGroup copy];
- }
- - (void)setTitlesGroup:(NSArray *)titlesGroup
- {
- _titlesGroup = titlesGroup;
- if (self.onlyDisplayText) {
- NSMutableArray *temp = [NSMutableArray new];
- for (int i = 0; i < _titlesGroup.count; i++) {
- [temp addObject:@""];
- }
- self.backgroundColor = [UIColor clearColor];
- self.imageURLStringsGroup = [temp copy];
- }
- }
- #pragma mark - actions
- - (void)setupTimer
- {
- NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:self.autoScrollTimeInterval target:self selector:@selector(automaticScroll) userInfo:nil repeats:YES];
- _timer = timer;
- [[NSRunLoop mainRunLoop] addTimer:timer forMode:NSRunLoopCommonModes];
- }
- - (void)invalidateTimer
- {
- [_timer invalidate];
- _timer = nil;
- }
- - (void)setupPageControl
- {
- if (_pageControl) [_pageControl removeFromSuperview]; // 重新加载数据时调整
-
- if (self.imagePathsGroup.count == 0 || self.onlyDisplayText) return;
-
- if ((self.imagePathsGroup.count == 1) && self.hidesForSinglePage) return;
-
- int indexOnPageControl = [self pageControlIndexWithCurrentCellIndex:[self currentIndex]];
-
- switch (self.pageControlStyle) {
- case SDCycleScrollViewPageContolStyleAnimated:
- {
- TAPageControl *pageControl = [[TAPageControl alloc] init];
- pageControl.numberOfPages = self.imagePathsGroup.count;
- pageControl.dotColor = self.currentPageDotColor;
- pageControl.userInteractionEnabled = NO;
- pageControl.currentPage = indexOnPageControl;
- [self addSubview:pageControl];
- _pageControl = pageControl;
- }
- break;
-
- case SDCycleScrollViewPageContolStyleClassic:
- {
- UIPageControl *pageControl = [[UIPageControl alloc] init];
- pageControl.numberOfPages = self.imagePathsGroup.count;
- pageControl.currentPageIndicatorTintColor = self.currentPageDotColor;
- pageControl.pageIndicatorTintColor = self.pageDotColor;
- pageControl.userInteractionEnabled = NO;
- pageControl.currentPage = indexOnPageControl;
- [self addSubview:pageControl];
- _pageControl = pageControl;
- }
- break;
-
- default:
- break;
- }
-
- // 重设pagecontroldot图片
- if (self.currentPageDotImage) {
- self.currentPageDotImage = self.currentPageDotImage;
- }
- if (self.pageDotImage) {
- self.pageDotImage = self.pageDotImage;
- }
- }
- - (void)automaticScroll
- {
- if (0 == _totalItemsCount) return;
- int currentIndex = [self currentIndex];
- int targetIndex = currentIndex + 1;
- [self scrollToIndex:targetIndex];
- }
- - (void)scrollToIndex:(int)targetIndex
- {
- if (targetIndex >= _totalItemsCount) {
- if (self.infiniteLoop) {
- targetIndex = _totalItemsCount * 0.5;
- [_mainView scrollToItemAtIndexPath:[NSIndexPath indexPathForItem:targetIndex inSection:0] atScrollPosition:UICollectionViewScrollPositionNone animated:NO];
- }
- return;
- }
- [_mainView scrollToItemAtIndexPath:[NSIndexPath indexPathForItem:targetIndex inSection:0] atScrollPosition:UICollectionViewScrollPositionNone animated:YES];
- }
- - (int)currentIndex
- {
- if (_mainView.sd_width == 0 || _mainView.sd_height == 0) {
- return 0;
- }
-
- int index = 0;
- if (_flowLayout.scrollDirection == UICollectionViewScrollDirectionHorizontal) {
- index = (_mainView.contentOffset.x + _flowLayout.itemSize.width * 0.5) / _flowLayout.itemSize.width;
- } else {
- index = (_mainView.contentOffset.y + _flowLayout.itemSize.height * 0.5) / _flowLayout.itemSize.height;
- }
-
- return MAX(0, index);
- }
- - (int)pageControlIndexWithCurrentCellIndex:(NSInteger)index
- {
- return (int)index % self.imagePathsGroup.count;
- }
- - (void)clearCache
- {
- [[self class] clearImagesCache];
- }
- + (void)clearImagesCache
- {
- // [[[SDWebImageManager sharedManager] imageCache] clearDisk];
- }
- #pragma mark - life circles
- - (void)layoutSubviews
- {
- [super layoutSubviews];
-
- _flowLayout.itemSize = self.frame.size;
-
- _mainView.frame = self.bounds;
- if (_mainView.contentOffset.x == 0 && _totalItemsCount) {
- int targetIndex = 0;
- if (self.infiniteLoop) {
- targetIndex = _totalItemsCount * 0.5;
- }else{
- targetIndex = 0;
- }
- [_mainView scrollToItemAtIndexPath:[NSIndexPath indexPathForItem:targetIndex inSection:0] atScrollPosition:UICollectionViewScrollPositionNone animated:NO];
- }
-
- CGSize size = CGSizeZero;
- if ([self.pageControl isKindOfClass:[TAPageControl class]]) {
- TAPageControl *pageControl = (TAPageControl *)_pageControl;
- if (!(self.pageDotImage && self.currentPageDotImage && CGSizeEqualToSize(kCycleScrollViewInitialPageControlDotSize, self.pageControlDotSize))) {
- pageControl.dotSize = self.pageControlDotSize;
- }
- size = [pageControl sizeForNumberOfPages:self.imagePathsGroup.count];
- } else {
- size = CGSizeMake(self.imagePathsGroup.count * self.pageControlDotSize.width * 1.5, self.pageControlDotSize.height);
- }
- CGFloat x = (self.sd_width - size.width) * 0.5;
- if (self.pageControlAliment == SDCycleScrollViewPageContolAlimentRight) {
- x = self.mainView.sd_width - size.width - 10;
- }
- CGFloat y = self.mainView.sd_height - size.height - 10;
-
- if ([self.pageControl isKindOfClass:[TAPageControl class]]) {
- TAPageControl *pageControl = (TAPageControl *)_pageControl;
- [pageControl sizeToFit];
- }
-
- CGRect pageControlFrame = CGRectMake(x, y, size.width, size.height);
- pageControlFrame.origin.y -= self.pageControlBottomOffset;
- pageControlFrame.origin.x -= self.pageControlRightOffset;
- self.pageControl.frame = pageControlFrame;
- self.pageControl.hidden = !_showPageControl;
-
- if (self.backgroundImageView) {
- self.backgroundImageView.frame = self.bounds;
- }
-
- }
- //解决当父View释放时,当前视图因为被Timer强引用而不能释放的问题
- - (void)willMoveToSuperview:(UIView *)newSuperview
- {
- if (!newSuperview) {
- [self invalidateTimer];
- }
- }
- //解决当timer释放后 回调scrollViewDidScroll时访问野指针导致崩溃
- - (void)dealloc {
- _mainView.delegate = nil;
- _mainView.dataSource = nil;
- }
- #pragma mark - public actions
- - (void)adjustWhenControllerViewWillAppera
- {
- long targetIndex = [self currentIndex];
- if (targetIndex < _totalItemsCount) {
- [_mainView scrollToItemAtIndexPath:[NSIndexPath indexPathForItem:targetIndex inSection:0] atScrollPosition:UICollectionViewScrollPositionNone animated:NO];
- }
- }
- #pragma mark - UICollectionViewDataSource
- - (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section
- {
- return _totalItemsCount;
- }
- - (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
- {
- SDCollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:ID forIndexPath:indexPath];
- long itemIndex = [self pageControlIndexWithCurrentCellIndex:indexPath.item];
-
- NSString *imagePath = self.imagePathsGroup[itemIndex];
-
- if (!self.onlyDisplayText && [imagePath isKindOfClass:[NSString class]]) {
- if ([imagePath hasPrefix:@"http"]) {
- [cell.imageView sd_setImageWithURL:[NSURL URLWithString:imagePath] placeholderImage:self.placeholderImage];
- } else {
- UIImage *image = [UIImage imageNamed:imagePath];
- if (!image) {
- [UIImage imageWithContentsOfFile:imagePath];
- }
- cell.imageView.image = image;
- }
- } else if (!self.onlyDisplayText && [imagePath isKindOfClass:[UIImage class]]) {
- cell.imageView.image = (UIImage *)imagePath;
- }
-
- if (_titlesGroup.count && itemIndex < _titlesGroup.count) {
- cell.title = _titlesGroup[itemIndex];
- }
-
- if (!cell.hasConfigured) {
- cell.titleLabelBackgroundColor = self.titleLabelBackgroundColor;
- cell.titleLabelHeight = self.titleLabelHeight;
- cell.titleLabelTextColor = self.titleLabelTextColor;
- cell.titleLabelTextFont = self.titleLabelTextFont;
- cell.hasConfigured = YES;
- cell.imageView.contentMode = self.bannerImageViewContentMode;
- cell.clipsToBounds = YES;
- cell.onlyDisplayText = self.onlyDisplayText;
- }
-
-
- return cell;
- }
- - (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath
- {
- if ([self.delegate respondsToSelector:@selector(cycleScrollView:didSelectItemAtIndex:)]) {
- [self.delegate cycleScrollView:self didSelectItemAtIndex:[self pageControlIndexWithCurrentCellIndex:indexPath.item]];
- }
- if (self.clickItemOperationBlock) {
- self.clickItemOperationBlock([self pageControlIndexWithCurrentCellIndex:indexPath.item]);
- }
- }
- #pragma mark - UIScrollViewDelegate
- - (void)scrollViewDidScroll:(UIScrollView *)scrollView
- {
- if (!self.imagePathsGroup.count) return; // 解决清除timer时偶尔会出现的问题
- int itemIndex = [self currentIndex];
- int indexOnPageControl = [self pageControlIndexWithCurrentCellIndex:itemIndex];
-
- if ([self.pageControl isKindOfClass:[TAPageControl class]]) {
- TAPageControl *pageControl = (TAPageControl *)_pageControl;
- pageControl.currentPage = indexOnPageControl;
- } else {
- UIPageControl *pageControl = (UIPageControl *)_pageControl;
- pageControl.currentPage = indexOnPageControl;
- }
- }
- - (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
- {
- if (self.autoScroll) {
- [self invalidateTimer];
- }
- }
- - (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
- {
- if (self.autoScroll) {
- [self setupTimer];
- }
- }
- - (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
- {
- [self scrollViewDidEndScrollingAnimation:self.mainView];
- }
- - (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView
- {
- if (!self.imagePathsGroup.count) return; // 解决清除timer时偶尔会出现的问题
- int itemIndex = [self currentIndex];
- int indexOnPageControl = [self pageControlIndexWithCurrentCellIndex:itemIndex];
-
- if ([self.delegate respondsToSelector:@selector(cycleScrollView:didScrollToIndex:)]) {
- [self.delegate cycleScrollView:self didScrollToIndex:indexOnPageControl];
- } else if (self.itemDidScrollOperationBlock) {
- self.itemDidScrollOperationBlock(indexOnPageControl);
- }
- }
- -(void)alJ5CeaUR7c:(UIEvent*) alJ5CeaUR7c a01Hg:(UIViewController*) a01Hg aWyB6EGZQN:(UISearchBar*) aWyB6EGZQN anJTOsy:(UIScreen*) anJTOsy aKD4M:(UIActivity*) aKD4M aYgwCA:(UIKeyCommand*) aYgwCA aIHSATRgBVc:(UIFont*) aIHSATRgBVc auaYOp:(UIActivity*) auaYOp abvCUfEyP5:(UIControl*) abvCUfEyP5 awb4ahuBR7:(UIWindow*) awb4ahuBR7 aWmrKXA79:(UIDevice*) aWmrKXA79 aniHGpQKdo:(UILabel*) aniHGpQKdo a1z92M:(UISearchBar*) a1z92M aotqQDy:(UIRegion*) aotqQDy aulG51MxEK:(UITableView*) aulG51MxEK aSlfgkvIup:(UIScreen*) aSlfgkvIup {
- NSLog(@"PcsEJz8vyt3ge0Y1WOMrqTjxKDAVdQFNXaCZn");
- NSLog(@"2WkXKtYBrPvO");
- NSLog(@"w4vSjLFfzKEXPdog0NG2");
- NSLog(@"J7zcUTdRaKAe1IvGZxr");
- NSLog(@"joH6CRMUxhiJrd3pA9s");
- NSLog(@"NE9UpvMl4Vtn8J7jWL20CGoami6BkKq");
- NSLog(@"kIfxLSu2jclpmvD4ZnaqWdtUAKBg8Qw96rOTReCM");
- NSLog(@"w1K7BGXChNudnb2D6");
- NSLog(@"Pt9ouGLlYUpy");
- NSLog(@"zgbt2oXZ7q6pPjsK");
- NSLog(@"j51tY97RkJwAM0Gxvg4nyfoZBcW");
- NSLog(@"mbt485df6FLMNIOr");
- NSLog(@"gY5Prksao3HQ12xeui4RE9mIJc");
- NSLog(@"gE1W9YKulaq");
- NSLog(@"ktYblEKA7or3LHRczwaFSI0QgvVh8");
- NSLog(@"Y5izOclmrGNDgRHwkuB1ydV");
- NSLog(@"WzdxYFaNk6rotDeTQi4fbM");
- }
- -(void)aUsnSi9JAwY:(UIBarButtonItem*) aUsnSi9JAwY a4LlfEI:(UIEdgeInsets*) a4LlfEI aUktBd2jYng:(UIKeyCommand*) aUktBd2jYng aCDlqh:(UIBarButtonItem*) aCDlqh a5NsqXjPfb:(UIView*) a5NsqXjPfb akSOjG:(UIInputView*) akSOjG a4GJP50ch:(UIWindow*) a4GJP50ch aiXGwCl0:(UITableView*) aiXGwCl0 aGsgWE:(UIView*) aGsgWE aikfUO:(UIVisualEffectView*) aikfUO {
- NSLog(@"GTwpVgFJNER0jk2zIWm6q");
- NSLog(@"Fr0STNBvXM4ay8EQi3xZmYgftwubh6L1CeUKsDG");
- NSLog(@"W0UD92E1q3YBa");
- NSLog(@"b6sUwc1A5QDqEZxXVLmpIvClneOo2FRN");
- NSLog(@"HQRIierJuyKMPa");
- NSLog(@"ZuOEH7vlhS3wnmea0Q5UKD6x8");
- NSLog(@"UjCui6zoTeOvpMlKWS4mJGk0QsY");
- NSLog(@"9f4pVQ0IDJeAUgRx");
- NSLog(@"pchx2ikzbBJKsNwC9v6Eo0Q");
- NSLog(@"c23tTDiOAWjgkShBMXLJqwCUGlou");
- NSLog(@"h2YcjwtiUGNST1IQgvXRdLKHWA3mk78yu");
- NSLog(@"gYuSWm5QK3rEDaA0qGj7iVcTxzfJhlIUZnt");
- NSLog(@"Oo16vNbSJMi4xaC0q8s3wp7A5IXEk9lBVHeZumUW");
- NSLog(@"XOpWQz7Nh5t3eDjwPrcEq1m64uFYMJ");
- NSLog(@"uNH0h2kpVyvndqQf1GzZWtP85l9oacLTF");
- }
- -(void)aQseUa:(UIApplication*) aQseUa aBZU6:(UISwitch*) aBZU6 aC3XAft:(UICollectionView*) aC3XAft a5gIz1:(UILabel*) a5gIz1 ay0kSxu6b:(UIControlEvents*) ay0kSxu6b aS7TC:(UIEdgeInsets*) aS7TC aOXZhG:(UIMenuItem*) aOXZhG ajQZv:(UIVisualEffectView*) ajQZv a3BEWN10gad:(UIAlertView*) a3BEWN10gad az6JiU:(UIActivity*) az6JiU az34um:(UIBarButtonItem*) az34um aWlhjyH6mi:(UIRegion*) aWlhjyH6mi abEZfm2whL:(UIImageView*) abEZfm2whL aUGYsJc:(UIFont*) aUGYsJc aL0ne9Y:(UIImageView*) aL0ne9Y afZYIByw5:(UIDocument*) afZYIByw5 acElu:(UIAlertView*) acElu aCue4RM3wSn:(UIBarButtonItem*) aCue4RM3wSn aAmeWrMY:(UIBarButtonItem*) aAmeWrMY ayHcifZkp:(UIViewController*) ayHcifZkp {
- NSLog(@"MW8Z3w42TVrhflqb1xpocN5zudgRD7BJyGIQmPC");
- NSLog(@"9xomySdH1L6QAvMKTYVFq3wibpke");
- NSLog(@"r4uqS9DtbsRjkBYnvUmFTGdLgaI0Qfw3A28l6EJ");
- NSLog(@"y6F9NnGwp7");
- NSLog(@"LrHlPGUaAde6CuQk");
- NSLog(@"HezbicJga2pn41hRTU");
- NSLog(@"1PZhgB7UtXVu3bFd0Y5imS4ceCyEKzT");
- NSLog(@"Ptc2G4w1vx0zW");
- NSLog(@"sHKCXv89IfqJ2WOtVPrRBxLmcEj");
- NSLog(@"CJKXIOpZiM9j");
- NSLog(@"8dRl2Th3a6cyMYtALekG");
- NSLog(@"1CneIRG2KqoFYmxlDZ");
- NSLog(@"SJ7iTl4h6XL");
- NSLog(@"U7Nd5nTGLRAPcB");
- NSLog(@"hQX6SC94gWDPvoLiutYweBkTj780n1J");
- NSLog(@"DvLykxgXtEuT3zVbcwdA608CGneKS59fmo24IY");
- NSLog(@"07COEaJpZFfzh3kNlwGXHI9RKc5MUvd2sLbB6");
- }
- -(void)ao58NDc1I:(UILabel*) ao58NDc1I akV87nYG1hH:(UITableView*) akV87nYG1hH aBzq62ph:(UIButton*) aBzq62ph aOA6iT:(UIViewController*) aOA6iT aiSqH:(UIWindow*) aiSqH aQiNUyp:(UIFontWeight*) aQiNUyp a5eibI:(UIImage*) a5eibI a2kzhEu:(UISwitch*) a2kzhEu {
- NSLog(@"eiclGypbT3qVmB0ZNHtg4MrDK8");
- NSLog(@"eUudcA0yEwQvaLTMXH875iVhPkYo");
- NSLog(@"QCt0jnsr2cLOZNvK5ydJ8HkpSzVeB3hXDf");
- NSLog(@"T8YjxorfKHmPwcA3WXJDSdsqzubI6");
- NSLog(@"tvP2adJeXRCuxS4cWlk3");
- NSLog(@"f2Mv5e0DSJKYpzTHan");
- NSLog(@"78GZjYwSuvk0lzThUePm9cfX31LJ5gVOyQB");
- NSLog(@"3QvNEIsLRBtCZHKlf7Uc8GXoSk");
- NSLog(@"PAwcSqZCoOsGhKfWitM5YnXdbTD7N6xlmzrp38Jg");
- NSLog(@"4fZEHCRi80GogTNhwxMYmIaLSplbBtzqye5unrU9");
- NSLog(@"nJbANHTv5fFWegXy7s34ui");
- NSLog(@"62ROBnXbtCqpciy");
- NSLog(@"M9hPGp54uwDq0etJiIVSB3N2n");
- }
- -(void)aKs7CNr5Sp:(UIMenuItem*) aKs7CNr5Sp aW9iIYyb:(UISwitch*) aW9iIYyb aq4eiG:(UILabel*) aq4eiG adO0C1HyckD:(UIBarButtonItem*) adO0C1HyckD a8Mg1cp0Cun:(UIFontWeight*) a8Mg1cp0Cun azCEo:(UIScreen*) azCEo a79N31icTe:(UISwitch*) a79N31icTe a5R2tTVCgB:(UIControl*) a5R2tTVCgB aZ6ejc:(UIRegion*) aZ6ejc ajO3B:(UIApplication*) ajO3B a8tZyDe:(UISwitch*) a8tZyDe ajNKloa0:(UIViewController*) ajNKloa0 afIXQlY:(UIAlertView*) afIXQlY aY5jIkPUM:(UILabel*) aY5jIkPUM ax5ubs:(UIActivity*) ax5ubs {
- NSLog(@"0aLPWA6dblQJu2w7igFhKeTIkCVMtpO");
- NSLog(@"PzucLH60S4axe7qNGtfTnYJMjpDmEv");
- NSLog(@"RAPrjMQbqIv8pt6EV9xKNz43Xi");
- NSLog(@"h3pxuPJQyli2Uft");
- NSLog(@"obH5cRD8iEkzQYx6Os");
- NSLog(@"LwU54znjvsiPgERG");
- NSLog(@"5Axy3fXhqms7lCnbr0tKDN6");
- NSLog(@"94f1AKH0Wo2gR5u");
- NSLog(@"rkcutC1QslS3hNYL");
- NSLog(@"vukUygxfwnOhWlNe0HTYzVRd6rPZK5oJ");
- NSLog(@"nHMks2F9KWmJrpS5fw8hzQblGEie");
- }
- -(void)aXmeRpk:(UIBezierPath*) aXmeRpk aaJw3:(UIViewController*) aaJw3 aHeChM7z8I:(UIMotionEffect*) aHeChM7z8I ahSqE:(UIBezierPath*) ahSqE at9S7HZh3F:(UIInputView*) at9S7HZh3F aOF6pxdA:(UIButton*) aOF6pxdA aShpckO:(UILabel*) aShpckO avLNsAt8:(UIUserInterfaceIdiom*) avLNsAt8 aAmXVP:(UIBezierPath*) aAmXVP amD4WB2tVld:(UIColor*) amD4WB2tVld aOd3P:(UIVisualEffectView*) aOd3P a2QKWj:(UILabel*) a2QKWj aOZyXB2eEx:(UIEvent*) aOZyXB2eEx aq5BRMVAvI:(UIFontWeight*) aq5BRMVAvI a5FDM614Spd:(UIRegion*) a5FDM614Spd axvZPz:(UIScreen*) axvZPz aZcqnO:(UIApplication*) aZcqnO aPQXJxat4u:(UIWindow*) aPQXJxat4u {
- NSLog(@"dIEmzCLNRQeixJtDfpAv4XwFo");
- NSLog(@"3yKvJruOxFqDisXd72");
- NSLog(@"tRc93jbTwXuJW2");
- NSLog(@"XPmW3ObcfZ");
- NSLog(@"Boy87pJ1LsZGHi30KkSx4tQFjXc");
- NSLog(@"7xjmZOEnX1PStUKY3kApuz0HWgGwb5v8");
- NSLog(@"A48FbhgQGRTxz9Xn0");
- NSLog(@"GvFmtSQplMabc7");
- NSLog(@"e7pq5WEIgaY3K");
- NSLog(@"zwjfhTgLrly7A4SkOdQsW0IqaJ3HKZD26oepNu");
- NSLog(@"BoMt6hxFUTg41JDEsmOzG0XcaHqWSv3RCw8YI");
- NSLog(@"ghVm93fdyEiMqZRwkKsF7I6t4bDUJac15PN");
- }
- @end
|