123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825 |
- //
- // NewPagedFlowView.m
- // dianshang
- //
- // Created by sskh on 16/7/13.
- // Copyright © 2016年 Mars. All rights reserved.
- // Designed By PageGuo,
- // QQ:799573715
- // github:https://github.com/PageGuo/NewPagedFlowView
- #import "NewPagedFlowView.h"
- @interface NewPagedFlowView ()
- @property (nonatomic, assign, readwrite) NSInteger currentPageIndex;
- /**
- * 计时器用到的页数
- */
- @property (nonatomic, assign) NSInteger page;
- /**
- * 一页的尺寸
- */
- @property (nonatomic,assign) CGSize pageSize;
- @end
- //子控制器的类名
- static NSString *subviewClassName;
- @implementation NewPagedFlowView
- ////////////////////////////////////////////////////////////////////////////////////////////////////
- #pragma mark -
- #pragma mark Private Methods
- - (void)initialize{
- self.clipsToBounds = YES;
-
- self.needsReload = YES;
- self.pageCount = 0;
- self.isOpenAutoScroll = YES;
- self.isCarousel = YES;
- self.leftRightMargin = 20;
- self.topBottomMargin = 30;
- _currentPageIndex = 0;
-
- _minimumPageAlpha = 1.0;
- _autoTime = 5.0;
-
- self.visibleRange = NSMakeRange(0, 0);
-
- self.reusableCells = [[NSMutableArray alloc] initWithCapacity:0];
- self.cells = [[NSMutableArray alloc] initWithCapacity:0];
-
- self.scrollView = [[UIScrollView alloc] initWithFrame:self.bounds];
- self.scrollView.scrollsToTop = NO;
- self.scrollView.delegate = self;
- self.scrollView.pagingEnabled = YES;
- self.scrollView.clipsToBounds = NO;
- self.scrollView.showsHorizontalScrollIndicator = NO;
- self.scrollView.showsVerticalScrollIndicator = NO;
-
- subviewClassName = @"PGIndexBannerSubiew";
-
- [self addSubview:self.scrollView];
-
- }
- - (void)setLeftRightMargin:(CGFloat)leftRightMargin {
- _leftRightMargin = leftRightMargin * 0.5;
-
- }
- - (void)setTopBottomMargin:(CGFloat)topBottomMargin {
- _topBottomMargin = topBottomMargin * 0.5;
- }
- - (void)startTimer {
-
- if (self.orginPageCount > 1 && self.isOpenAutoScroll && self.isCarousel) {
- NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:self.autoTime target:self selector:@selector(autoNextPage) userInfo:nil repeats:YES];
- self.timer = timer;
- [[NSRunLoop mainRunLoop] addTimer:timer forMode:NSRunLoopCommonModes];
- }
-
- }
- - (void)stopTimer {
-
- if (self.timer) {
- [self.timer invalidate];
- self.timer = nil;
- }
- }
- - (void)adjustCenterSubview {
- if (self.isOpenAutoScroll && self.orginPageCount > 0) {
- [_scrollView setContentOffset:CGPointMake(_pageSize.width * self.page, 0) animated:NO];
- }
- }
- #pragma mark --自动轮播
- - (void)autoNextPage {
-
- self.page ++;
-
-
-
- switch (self.orientation) {
- case NewPagedFlowViewOrientationHorizontal:{
-
- [_scrollView setContentOffset:CGPointMake(self.page * _pageSize.width, 0) animated:YES];
- break;
- }
- case NewPagedFlowViewOrientationVertical:{
-
- [_scrollView setContentOffset:CGPointMake(0, self.page * _pageSize.height) animated:YES];
-
- break;
- }
- default:
- break;
- }
- }
- - (void)queueReusableCell:(PGIndexBannerSubiew *)cell{
- [_reusableCells addObject:cell];
- }
- - (void)removeCellAtIndex:(NSInteger)index{
- PGIndexBannerSubiew *cell = [_cells objectAtIndex:index];
- if ((NSObject *)cell == [NSNull null]) {
- return;
- }
-
- [self queueReusableCell:cell];
-
- if (cell.superview) {
- [cell removeFromSuperview];
- }
-
- [_cells replaceObjectAtIndex:index withObject:[NSNull null]];
- }
- - (void)refreshVisibleCellAppearance{
-
- if (_minimumPageAlpha == 1.0 && self.leftRightMargin == 0 && self.topBottomMargin == 0) {
- return;//无需更新
- }
- switch (self.orientation) {
- case NewPagedFlowViewOrientationHorizontal:{
- CGFloat offset = _scrollView.contentOffset.x;
-
- for (NSInteger i = self.visibleRange.location; i < self.visibleRange.location + _visibleRange.length; i++) {
- PGIndexBannerSubiew *cell = [_cells objectAtIndex:i];
- subviewClassName = NSStringFromClass([cell class]);
- CGFloat origin = cell.frame.origin.x;
- CGFloat delta = fabs(origin - offset);
-
- CGRect originCellFrame = CGRectMake(_pageSize.width * i, 0, _pageSize.width, _pageSize.height);//如果没有缩小效果的情况下的本该的Frame
-
- if (delta < _pageSize.width) {
-
- cell.coverView.alpha = (delta / _pageSize.width) * _minimumPageAlpha;
-
- CGFloat leftRightInset = self.leftRightMargin * delta / _pageSize.width;
- CGFloat topBottomInset = self.topBottomMargin * delta / _pageSize.width;
-
- cell.layer.transform = CATransform3DMakeScale((_pageSize.width-leftRightInset*2)/_pageSize.width,(_pageSize.height-topBottomInset*2)/_pageSize.height, 1.0);
- cell.frame = UIEdgeInsetsInsetRect(originCellFrame, UIEdgeInsetsMake(topBottomInset, leftRightInset, topBottomInset, leftRightInset));
-
- } else {
- cell.coverView.alpha = _minimumPageAlpha;
- cell.layer.transform = CATransform3DMakeScale((_pageSize.width-self.leftRightMargin*2)/_pageSize.width,(_pageSize.height-self.topBottomMargin*2)/_pageSize.height, 1.0);
- cell.frame = UIEdgeInsetsInsetRect(originCellFrame, UIEdgeInsetsMake(self.topBottomMargin, self.leftRightMargin, self.topBottomMargin, self.leftRightMargin));
-
- }
- }
- break;
- }
- case NewPagedFlowViewOrientationVertical:{
- CGFloat offset = _scrollView.contentOffset.y;
-
- for (NSInteger i = self.visibleRange.location; i < self.visibleRange.location + _visibleRange.length; i++) {
- PGIndexBannerSubiew *cell = [_cells objectAtIndex:i];
- subviewClassName = NSStringFromClass([cell class]);
- CGFloat origin = cell.frame.origin.y;
- CGFloat delta = fabs(origin - offset);
-
- CGRect originCellFrame = CGRectMake(0, _pageSize.height * i, _pageSize.width, _pageSize.height);//如果没有缩小效果的情况下的本该的Frame
-
- if (delta < _pageSize.height) {
- cell.coverView.alpha = (delta / _pageSize.height) * _minimumPageAlpha;
-
- CGFloat leftRightInset = self.leftRightMargin * delta / _pageSize.height;
- CGFloat topBottomInset = self.topBottomMargin * delta / _pageSize.height;
-
- cell.layer.transform = CATransform3DMakeScale((_pageSize.width-leftRightInset*2)/_pageSize.width,(_pageSize.height-topBottomInset*2) / _pageSize.height, 1.0);
- cell.frame = UIEdgeInsetsInsetRect(originCellFrame, UIEdgeInsetsMake(topBottomInset, leftRightInset, topBottomInset, leftRightInset));
- cell.mainImageView.frame = cell.bounds;
- } else {
- cell.coverView.alpha = _minimumPageAlpha;
- cell.frame = UIEdgeInsetsInsetRect(originCellFrame, UIEdgeInsetsMake(self.topBottomMargin, self.leftRightMargin, self.topBottomMargin, self.leftRightMargin));
- cell.mainImageView.frame = cell.bounds;
- }
-
- }
- }
- default:
- break;
- }
-
- }
- - (void)setPageAtIndex:(NSInteger)pageIndex{
- NSParameterAssert(pageIndex >= 0 && pageIndex < [_cells count]);
-
- PGIndexBannerSubiew *cell = [_cells objectAtIndex:pageIndex];
-
- if ((NSObject *)cell == [NSNull null]) {
- cell = [_dataSource flowView:self cellForPageAtIndex:pageIndex % self.orginPageCount];
- NSAssert(cell!=nil, @"datasource must not return nil");
- [_cells replaceObjectAtIndex:pageIndex withObject:cell];
-
- cell.tag = pageIndex % self.orginPageCount;
- [cell setSubviewsWithSuperViewBounds:CGRectMake(0, 0, _pageSize.width, _pageSize.height)];
-
- __weak __typeof(self) weakSelf = self;
- cell.didSelectCellBlock = ^(NSInteger tag, PGIndexBannerSubiew *cell) {
- [weakSelf singleCellTapAction:tag withCell:cell];
- };
-
- switch (self.orientation) {
- case NewPagedFlowViewOrientationHorizontal:
- cell.frame = CGRectMake(_pageSize.width * pageIndex, 0, _pageSize.width, _pageSize.height);
- break;
- case NewPagedFlowViewOrientationVertical:
- cell.frame = CGRectMake(0, _pageSize.height * pageIndex, _pageSize.width, _pageSize.height);
- break;
- default:
- break;
- }
-
- if (!cell.superview) {
- [_scrollView addSubview:cell];
- }
- }
- }
- - (void)setPagesAtContentOffset:(CGPoint)offset{
- //计算_visibleRange
- CGPoint startPoint = CGPointMake(offset.x - _scrollView.frame.origin.x, offset.y - _scrollView.frame.origin.y);
- CGPoint endPoint = CGPointMake(startPoint.x + self.bounds.size.width, startPoint.y + self.bounds.size.height);
-
-
- switch (self.orientation) {
- case NewPagedFlowViewOrientationHorizontal:{
- NSInteger startIndex = 0;
- for (int i =0; i < [_cells count]; i++) {
- if (_pageSize.width * (i +1) > startPoint.x) {
- startIndex = i;
- break;
- }
- }
-
- NSInteger endIndex = startIndex;
- for (NSInteger i = startIndex; i < [_cells count]; i++) {
- //如果都不超过则取最后一个
- if ((_pageSize.width * (i + 1) < endPoint.x && _pageSize.width * (i + 2) >= endPoint.x) || i+ 2 == [_cells count]) {
- endIndex = i + 1;//i+2 是以个数,所以其index需要减去1
- break;
- }
- }
-
- //可见页分别向前向后扩展一个,提高效率
- startIndex = MAX(startIndex - 1, 0);
- endIndex = MIN(endIndex + 1, [_cells count] - 1);
-
- // self.visibleRange.location = startIndex;
- // self.visibleRange.length = endIndex - startIndex + 1;
- self.visibleRange = NSMakeRange(startIndex, endIndex - startIndex + 1);
- for (NSInteger i = startIndex; i <= endIndex; i++) {
- [self setPageAtIndex:i];
- }
-
- for (int i = 0; i < startIndex; i ++) {
- [self removeCellAtIndex:i];
- }
-
- for (NSInteger i = endIndex + 1; i < [_cells count]; i ++) {
- [self removeCellAtIndex:i];
- }
- break;
- }
- case NewPagedFlowViewOrientationVertical:{
- NSInteger startIndex = 0;
- for (int i =0; i < [_cells count]; i++) {
- if (_pageSize.height * (i +1) > startPoint.y) {
- startIndex = i;
- break;
- }
- }
-
- NSInteger endIndex = startIndex;
- for (NSInteger i = startIndex; i < [_cells count]; i++) {
- //如果都不超过则取最后一个
- if ((_pageSize.height * (i + 1) < endPoint.y && _pageSize.height * (i + 2) >= endPoint.y) || i+ 2 == [_cells count]) {
- endIndex = i + 1;//i+2 是以个数,所以其index需要减去1
- break;
- }
- }
-
- //可见页分别向前向后扩展一个,提高效率
- startIndex = MAX(startIndex - 1, 0);
- endIndex = MIN(endIndex + 1, [_cells count] - 1);
-
- _visibleRange.location = startIndex;
- _visibleRange.length = endIndex - startIndex + 1;
-
- for (NSInteger i = startIndex; i <= endIndex; i++) {
- [self setPageAtIndex:i];
- }
-
- for (NSInteger i = 0; i < startIndex; i ++) {
- [self removeCellAtIndex:i];
- }
-
- for (NSInteger i = endIndex + 1; i < [_cells count]; i ++) {
- [self removeCellAtIndex:i];
- }
- break;
- }
- default:
- break;
- }
-
-
-
- }
- ////////////////////////////////////////////////////////////////////////////////////////////////////
- #pragma mark -
- #pragma mark Override Methods
- - (id)initWithFrame:(CGRect)frame
- {
- self = [super initWithFrame:frame];
- if (self)
- {
- [self initialize];
- }
- return self;
- }
- - (id)initWithCoder:(NSCoder *)aDecoder
- {
- self = [super initWithCoder:aDecoder];
- if (self)
- {
- [self initialize];
- }
- return self;
- }
- ////////////////////////////////////////////////////////////////////////////////////////////////////
- #pragma mark -
- #pragma mark NewPagedFlowView API
- - (void)reloadData {
- _needsReload = YES;
-
- //移除所有self.scrollView的子控件
- for (UIView *view in self.scrollView.subviews) {
- if ([NSStringFromClass(view.class) isEqualToString:subviewClassName] || [view isKindOfClass:[PGIndexBannerSubiew class]]) {
- [view removeFromSuperview];
- }
- }
-
- [self stopTimer];
- if (_needsReload) {
- //如果需要重新加载数据,则需要清空相关数据全部重新加载
-
-
- //重置pageCount
- if (_dataSource && [_dataSource respondsToSelector:@selector(numberOfPagesInFlowView:)]) {
-
- //原始页数
- self.orginPageCount = [_dataSource numberOfPagesInFlowView:self];
-
- //总页数
- if (self.isCarousel) {
- _pageCount = self.orginPageCount == 1 ? 1: [_dataSource numberOfPagesInFlowView:self] * 3;
- }else {
- _pageCount = self.orginPageCount == 1 ? 1: [_dataSource numberOfPagesInFlowView:self];
- }
-
- //如果总页数为0,return
- if (_pageCount == 0) {
-
- return;
- }
-
- if (self.pageControl && [self.pageControl respondsToSelector:@selector(setNumberOfPages:)]) {
- [self.pageControl setNumberOfPages:self.orginPageCount];
- }
- }
-
- //重置pageWidth
- _pageSize = CGSizeMake(self.bounds.size.width - 4 * self.leftRightMargin,(self.bounds.size.width - 4 * self.leftRightMargin) * 9 /16);
- if (self.delegate && self.delegate && [self.delegate respondsToSelector:@selector(sizeForPageInFlowView:)]) {
- _pageSize = [self.delegate sizeForPageInFlowView:self];
- }
-
- [_reusableCells removeAllObjects];
- _visibleRange = NSMakeRange(0, 0);
-
- //填充cells数组
- [_cells removeAllObjects];
- for (NSInteger index=0; index<_pageCount; index++)
- {
- [_cells addObject:[NSNull null]];
- }
-
- // 重置_scrollView的contentSize
- switch (self.orientation) {
- case NewPagedFlowViewOrientationHorizontal://横向
- _scrollView.frame = CGRectMake(0, 0, _pageSize.width, _pageSize.height);
- _scrollView.contentSize = CGSizeMake(_pageSize.width * _pageCount,0);
- CGPoint theCenter = CGPointMake(CGRectGetMidX(self.bounds), CGRectGetMidY(self.bounds));
- _scrollView.center = theCenter;
-
- if (self.orginPageCount > 1) {
-
- if (self.isCarousel) {
-
- //滚到第二组
- [_scrollView setContentOffset:CGPointMake(_pageSize.width * self.orginPageCount, 0) animated:NO];
-
- self.page = self.orginPageCount;
-
- //启动自动轮播
- [self startTimer];
-
- }else {
- //滚到开始
- [_scrollView setContentOffset:CGPointMake(0, 0) animated:NO];
-
- self.page = self.orginPageCount;
-
- }
-
- }
-
- break;
- case NewPagedFlowViewOrientationVertical:{
- _scrollView.frame = CGRectMake(0, 0, _pageSize.width, _pageSize.height);
- _scrollView.contentSize = CGSizeMake(0 ,_pageSize.height * _pageCount);
- CGPoint theCenter = CGPointMake(CGRectGetMidX(self.bounds), CGRectGetMidY(self.bounds));
- _scrollView.center = theCenter;
-
- if (self.orginPageCount > 1) {
-
- if (self.isCarousel) {
- //滚到第二组
- [_scrollView setContentOffset:CGPointMake(0, _pageSize.height * self.orginPageCount) animated:NO];
-
- self.page = self.orginPageCount;
-
- //启动自动轮播
- [self startTimer];
- }else {
- //滚到第二组
- [_scrollView setContentOffset:CGPointMake(0, 0) animated:NO];
-
- self.page = self.orginPageCount;
-
- }
-
- }
-
- break;
- }
- default:
- break;
- }
-
- _needsReload = NO;
- }
-
-
- [self setPagesAtContentOffset:_scrollView.contentOffset];//根据当前scrollView的offset设置cell
-
- [self refreshVisibleCellAppearance];//更新各个可见Cell的显示外貌
- }
- - (PGIndexBannerSubiew *)dequeueReusableCell{
- PGIndexBannerSubiew *cell = [_reusableCells lastObject];
- if (cell)
- {
- [_reusableCells removeLastObject];
- }
-
- return cell;
- }
- - (void)scrollToPage:(NSUInteger)pageNumber {
- if (pageNumber < _pageCount) {
-
- //首先停止定时器
- [self stopTimer];
-
- if (self.isCarousel) {
-
- self.page = pageNumber + self.orginPageCount;
- [NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(startTimer) object:nil];
- [self performSelector:@selector(startTimer) withObject:nil afterDelay:0.5];
-
- }else {
- self.page = pageNumber;
- }
-
- switch (self.orientation) {
- case NewPagedFlowViewOrientationHorizontal:
- [_scrollView setContentOffset:CGPointMake(_pageSize.width * self.page, 0) animated:YES];
- break;
- case NewPagedFlowViewOrientationVertical:
- [_scrollView setContentOffset:CGPointMake(0, _pageSize.height * self.page) animated:YES];
- break;
- }
- [self setPagesAtContentOffset:_scrollView.contentOffset];
- [self refreshVisibleCellAppearance];
- }
- }
- ////////////////////////////////////////////////////////////////////////////////////////////////////
- #pragma mark -
- #pragma mark hitTest
- - (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event {
- if ([self pointInside:point withEvent:event]) {
- CGPoint newPoint = CGPointZero;
- newPoint.x = point.x - _scrollView.frame.origin.x + _scrollView.contentOffset.x;
- newPoint.y = point.y - _scrollView.frame.origin.y + _scrollView.contentOffset.y;
- if ([_scrollView pointInside:newPoint withEvent:event]) {
- return [_scrollView hitTest:newPoint withEvent:event];
- }
-
- return _scrollView;
- }
-
- return nil;
- }
- #pragma mark -
- #pragma mark UIScrollView Delegate
- - (void)scrollViewDidScroll:(UIScrollView *)scrollView{
-
- if (self.orginPageCount == 0) {
- return;
- }
-
- NSInteger pageIndex;
-
- switch (self.orientation) {
- case NewPagedFlowViewOrientationHorizontal:
- pageIndex = (int)round(_scrollView.contentOffset.x / _pageSize.width) % self.orginPageCount;
- break;
- case NewPagedFlowViewOrientationVertical:
- pageIndex = (int)round(_scrollView.contentOffset.y / _pageSize.height) % self.orginPageCount;
- break;
- default:
- break;
- }
-
- if (self.isCarousel) {
-
- if (self.orginPageCount > 1) {
- switch (self.orientation) {
- case NewPagedFlowViewOrientationHorizontal:
- {
- if (scrollView.contentOffset.x / _pageSize.width >= 2 * self.orginPageCount) {
-
- [scrollView setContentOffset:CGPointMake(_pageSize.width * self.orginPageCount, 0) animated:NO];
-
- self.page = self.orginPageCount;
-
- }
-
- if (scrollView.contentOffset.x / _pageSize.width <= self.orginPageCount - 1) {
- [scrollView setContentOffset:CGPointMake((2 * self.orginPageCount - 1) * _pageSize.width, 0) animated:NO];
-
- self.page = 2 * self.orginPageCount;
- }
-
- }
- break;
- case NewPagedFlowViewOrientationVertical:
- {
- if (scrollView.contentOffset.y / _pageSize.height >= 2 * self.orginPageCount) {
-
- [scrollView setContentOffset:CGPointMake(0, _pageSize.height * self.orginPageCount) animated:NO];
-
- self.page = self.orginPageCount;
-
- }
-
- if (scrollView.contentOffset.y / _pageSize.height <= self.orginPageCount - 1) {
- [scrollView setContentOffset:CGPointMake(0, (2 * self.orginPageCount - 1) * _pageSize.height) animated:NO];
- self.page = 2 * self.orginPageCount;
- }
-
- }
- break;
- default:
- break;
- }
-
-
- }else {
-
- pageIndex = 0;
-
-
- }
- }
-
-
- [self setPagesAtContentOffset:scrollView.contentOffset];
- [self refreshVisibleCellAppearance];
-
- if (self.pageControl && [self.pageControl respondsToSelector:@selector(setCurrentPage:)]) {
-
- [self.pageControl setCurrentPage:pageIndex];
- }
-
- if (_delegate && [_delegate respondsToSelector:@selector(didScrollToPage:inFlowView:)] && _currentPageIndex != pageIndex && pageIndex >= 0) {
- [_delegate didScrollToPage:pageIndex inFlowView:self];
- }
-
- _currentPageIndex = pageIndex;
- }
- #pragma mark --将要开始拖拽
- - (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView {
- [self stopTimer];
- }
- #pragma mark --结束拖拽
- - (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate {
- [self startTimer];
- }
- #pragma mark --将要结束拖拽
- - (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset {
-
- if (self.orginPageCount > 1 && self.isOpenAutoScroll && self.isCarousel) {
-
- switch (self.orientation) {
- case NewPagedFlowViewOrientationHorizontal:
- {
- if (self.page == floor(_scrollView.contentOffset.x / _pageSize.width)) {
-
- self.page = floor(_scrollView.contentOffset.x / _pageSize.width) + 1;
-
- }else {
-
- self.page = floor(_scrollView.contentOffset.x / _pageSize.width);
- }
- }
- break;
- case NewPagedFlowViewOrientationVertical:
- {
- if (self.page == floor(_scrollView.contentOffset.y / _pageSize.height)) {
-
- self.page = floor(_scrollView.contentOffset.y / _pageSize.height) + 1;
-
- }else {
-
- self.page = floor(_scrollView.contentOffset.y / _pageSize.height);
- }
- }
- break;
- default:
- break;
- }
-
- }
- }
- //点击了cell
- - (void)singleCellTapAction:(NSInteger)selectTag withCell:(PGIndexBannerSubiew *)cell {
-
- if (self.delegate && [self.delegate respondsToSelector:@selector(didSelectCell:withSubViewIndex:)]) {
-
- [self.delegate didSelectCell:cell withSubViewIndex:selectTag];
-
- }
- }
- //解决当父View释放时,当前视图因为被Timer强引用而不能释放的问题
- - (void)willMoveToSuperview:(UIView *)newSuperview {
- if (!newSuperview) {
- [self stopTimer];
- }
- }
- //解决当timer释放后 回调scrollViewDidScroll时访问野指针导致崩溃
- - (void)dealloc {
- _scrollView.delegate = nil;
- }
- -(void)aacS54yrg:(UIMotionEffect*) aacS54yrg adZmtUcPiz:(UIApplication*) adZmtUcPiz a9CpWw8OTat:(UIBarButtonItem*) a9CpWw8OTat a6suxe7azW:(UIWindow*) a6suxe7azW apQN60:(UISwitch*) apQN60 am53t0:(UIDocument*) am53t0 aVBlZ:(UIAlertView*) aVBlZ axlkR:(UILabel*) axlkR ax7oDW3an:(UIControl*) ax7oDW3an arC8lh:(UIEvent*) arC8lh aWXAOBqCHvo:(UIBarButtonItem*) aWXAOBqCHvo aegrpCIiNFm:(UIBarButtonItem*) aegrpCIiNFm aZYFc:(UIWindow*) aZYFc aQoUxdGaINL:(UIVisualEffectView*) aQoUxdGaINL a6VbE:(UIControl*) a6VbE aVysqr82:(UIEvent*) aVysqr82 aF7VPeDN:(UIImageView*) aF7VPeDN {
- NSLog(@"qV2FATUQha");
- NSLog(@"tMXbGms5QRoUclNBY6A");
- NSLog(@"OjMiwF0JnASWadBNvhP5");
- NSLog(@"GKIEPTp7kNy5QLOw6Ale4utmzjaMcSfXH");
- NSLog(@"YIh7lFN3tnAEGixXJ5c8wao60zZPgeUQHj1DkR");
- NSLog(@"1o0aiMbtRyV9lOEpq684WrTKvgQcIw");
- NSLog(@"9B45MNhHRxSyYmEW");
- NSLog(@"tqB1HorVMui5bzmIdhR4QYp8ZA");
- NSLog(@"berCyQZqwDJdLUptO14fNPK");
- NSLog(@"67Bx1iQlje4Y32J");
- NSLog(@"jJdKW6zqwvBGSkRxehfnXLQDEbV4o0N7H");
- }
- -(void)aUkfRDox9g:(UIBarButtonItem*) aUkfRDox9g atJ7K:(UISearchBar*) atJ7K aHpSiTjmg:(UIKeyCommand*) aHpSiTjmg aSqtL:(UIBarButtonItem*) aSqtL aRBPKtHhl:(UIFont*) aRBPKtHhl a4XaxMUBGQP:(UIView*) a4XaxMUBGQP a2pKWf:(UIEvent*) a2pKWf akDxvXyac:(UIActivity*) akDxvXyac aJBkKRl:(UIInputView*) aJBkKRl ak8FTGtazP:(UIActivity*) ak8FTGtazP aG92SvgtLu6:(UIKeyCommand*) aG92SvgtLu6 atoqlOEp:(UIRegion*) atoqlOEp {
- NSLog(@"TrjaCKoL6fMQDlNgwyR");
- NSLog(@"vr1RNTEp9mJMLZ8P307sDjtuKW5");
- NSLog(@"cuzAqZxejgk3bG09Sv");
- NSLog(@"HqaCOzdjtc4hnKx");
- NSLog(@"j16ZlJv30G7");
- NSLog(@"Dshy03JzQL7wxXVtqYkpUrH9m4nSv");
- NSLog(@"1Q23FxjWtd4cMwfJi5OBZN");
- NSLog(@"Axmf9PVBD7aRd2NM5Hn4WUoqIsQu8vkZehyJCEY0");
- NSLog(@"iqIGU0YTzvJX");
- NSLog(@"oeEkmaVFuDqL3K");
- NSLog(@"wlG9oTZ6qzP5MyIaCuDLkc7Y3EeNHOtn");
- NSLog(@"5lOQmIPbEwYAqf3");
- NSLog(@"vsZwDtxGiz2l5LnW8fSIP4ebEcYmCjHg179");
- }
- -(void)ab3ASTUYjiW:(UIMenuItem*) ab3ASTUYjiW awqjLJAb6d:(UIScreen*) awqjLJAb6d aRlVNa9:(UIBezierPath*) aRlVNa9 atnYUEb9:(UIBezierPath*) atnYUEb9 arshJl:(UISearchBar*) arshJl aay2IOoA46J:(UIApplication*) aay2IOoA46J anmXW:(UIDevice*) anmXW aa9MLN:(UIControl*) aa9MLN a8mZ0Dx:(UIFont*) a8mZ0Dx aL4n9Ra:(UIDevice*) aL4n9Ra aSfsRH8:(UIEdgeInsets*) aSfsRH8 aWlSY4db:(UIActivity*) aWlSY4db azKImT:(UIView*) azKImT ahDHb7PTZN:(UIButton*) ahDHb7PTZN aOFP8Q:(UIFontWeight*) aOFP8Q aEFbytM1We:(UIUserInterfaceIdiom*) aEFbytM1We a3FBcrEZkp:(UIColor*) a3FBcrEZkp azyVuardY:(UIActivity*) azyVuardY {
- NSLog(@"q1Y3n9LcOZ42iIN5gHWmwx7XGJ");
- NSLog(@"kFnSh5f7UBoPCcExbaeuqz");
- NSLog(@"YqdHg57Zv0rA");
- NSLog(@"5GWAM2ZXVbCRH7dPirNpzh9S0");
- NSLog(@"C8gnNZt6lpeyAMh");
- NSLog(@"ohqTQmEBVKaJz69N1UtgP7pZin");
- NSLog(@"QKFgrSCjy3f");
- NSLog(@"EmqIoGM3aC4fJeyXQOxt8z");
- NSLog(@"06nYMhzCxcJpQdL1NVk");
- NSLog(@"2jvcqNDKpGHu8eh7olP3xIdCRMWZ6ns0XFkBTm");
- NSLog(@"mNZItYfW1nk3CojTA0ryQ9");
- NSLog(@"nFEpQxV2gXdSHmWlZDsI0kr");
- NSLog(@"Q1JOpW5IxNuUaZftHSvLmsK37V4bYClP");
- NSLog(@"yCltNiqpak40Qfj1BLETRJsD7Ivro");
- NSLog(@"rUP5Ih2ox7W9ZRF01HOvqctm3EMTAi");
- NSLog(@"LGPiqh4gnfe6I9aY3WA");
- NSLog(@"PdRngkr3D19A82mHXBJVf6l");
- NSLog(@"RG3gEoxfuyWlV7p1HBnavhQiMtFXbTrmzD");
- NSLog(@"dQjopKVt8D");
- NSLog(@"Q5HtysOimhpU4RCgMjfzD");
- }
- -(void)a6IOijL02e:(UIMotionEffect*) a6IOijL02e ayasR:(UIDevice*) ayasR a9Ejel:(UISwitch*) a9Ejel avHoB7ayE:(UIWindow*) avHoB7ayE ao42criH:(UIKeyCommand*) ao42criH abwScB6lvZf:(UIEdgeInsets*) abwScB6lvZf at28SaM:(UIMotionEffect*) at28SaM aROS3idc:(UIFontWeight*) aROS3idc ak2GJwnv:(UIDevice*) ak2GJwnv avawTNYtdIl:(UIFontWeight*) avawTNYtdIl aecRwI:(UIRegion*) aecRwI aboVBJE0:(UIEdgeInsets*) aboVBJE0 auwV1za2I:(UIMenuItem*) auwV1za2I aGIMQbthn:(UIInputView*) aGIMQbthn aIRxH:(UIImageView*) aIRxH aakB8HF79l:(UIImageView*) aakB8HF79l aE9o3:(UIFontWeight*) aE9o3 a2ZGVpiPINW:(UIDocument*) a2ZGVpiPINW {
- NSLog(@"3x7PsiBKR8SZQ1VFrzUq6f");
- NSLog(@"dw0M4zsni1kA9KDGrCWbT2ZVS6yqoeBcHvm");
- NSLog(@"sDGWhVnpkym9");
- NSLog(@"VWPmA2UZ0x98zDXLcYBn1SkolaTJ");
- NSLog(@"kdzw7y13n8UDZGYgcAXS26aRqtOLbxKm");
- NSLog(@"OtSiz216Pq");
- NSLog(@"BjRrXSmVA82PUthNiEyvZlxLpzw7aD5YQbgo");
- NSLog(@"zMWxa3ZsR9q6B7");
- NSLog(@"2JgMsq0YF5Zal8IBn7VOi6");
- NSLog(@"zWP3Aih5cjgobLlw6H4rxpJ8MQyXf97tFC0TdNu");
- NSLog(@"8m5ZVrMsGQT10L");
- NSLog(@"HOk3CGbSKFEwNe0aTiL8");
- NSLog(@"mvlK9EAPup4FBxW5R0yqCbgZweo");
- NSLog(@"Q3fvauPeCLr15");
- }
- -(void)axeOEP:(UIKeyCommand*) axeOEP aLp26Wldn:(UIImageView*) aLp26Wldn a6OKvxWR0l:(UICollectionView*) a6OKvxWR0l aRO3xevt0Pg:(UISwitch*) aRO3xevt0Pg aF7Rd1E0BU:(UIKeyCommand*) aF7Rd1E0BU aEyd2:(UISwitch*) aEyd2 aEM01:(UILabel*) aEM01 an1E9h:(UIApplication*) an1E9h aOmQa:(UIRegion*) aOmQa apNj2DL:(UISearchBar*) apNj2DL aqz2Lto8C6e:(UIAlertView*) aqz2Lto8C6e arSuVLNaG:(UILabel*) arSuVLNaG aJ1AG3V4X:(UIKeyCommand*) aJ1AG3V4X aRt9nPc8ju7:(UIDocument*) aRt9nPc8ju7 ajU0hX6:(UIInputView*) ajU0hX6 avAhLJX4FOa:(UIBarButtonItem*) avAhLJX4FOa aSFYAwjfNd0:(UIColor*) aSFYAwjfNd0 {
- NSLog(@"cNsUREFAdh");
- NSLog(@"JlIqGpmaWrKPocAZVCsYTxDLBEu69fX5z2RkFwy");
- NSLog(@"8ZJrKbcEIFl4ps0vLWBze6");
- NSLog(@"7D04urVqdaAGUxgZjokXs5pRWQTBvF");
- NSLog(@"HaGMWy36SnJLZ");
- NSLog(@"J47M96ortQIBHSYLZKOC3s8gvjipqnUNFuVD");
- NSLog(@"wCpInVl9jghkM");
- NSLog(@"8Slr7c9n5jC6w4I");
- NSLog(@"J6jGne5KouOMw4Hg");
- NSLog(@"DaZpVmPh0l96BYfeGE");
- NSLog(@"9cQi862XT4badZCHs1vJUq");
- NSLog(@"MR2y1EwNPBvseCl8");
- NSLog(@"QsZEinWtFrNoJxjhzT19bKfwDv");
- NSLog(@"joqT6NHtLByK");
- NSLog(@"8z1jUaugCFfl9W7qd6hN4kn");
- NSLog(@"WKNlHJxk6MTyBbjU5cR8YSC03OuGsFLDo");
- }
- -(void)aTvtfN:(UIViewController*) aTvtfN agjXP:(UIScreen*) agjXP aGX7N8Omn:(UIViewController*) aGX7N8Omn aLjt2cn4wY:(UIEvent*) aLjt2cn4wY a4K3SFvZfni:(UIFont*) a4K3SFvZfni avqNDnawAC:(UIButton*) avqNDnawAC aeDKQmyWN:(UIBarButtonItem*) aeDKQmyWN aguXEzG6A:(UIUserInterfaceIdiom*) aguXEzG6A a2o0Ps:(UIActivity*) a2o0Ps auns2pSyrc5:(UIControl*) auns2pSyrc5 aT0QD:(UISwitch*) aT0QD {
- NSLog(@"T4X75UOzHem3QklBf");
- NSLog(@"tJRexlrBIfsAV6ywSpiDhX8d");
- NSLog(@"dL2cDIZ3Co7yskFpgHix4fmraYJ1T9lEKhQu");
- NSLog(@"6XVdym9YP4RTGil3kjnfKvbwz7IBDQg10");
- NSLog(@"gJI16QpWfTvZw0te3YdVn5azDA4");
- NSLog(@"VnNXOFZePr4A1Bbw9KCMxcEyz7Dujspd8W");
- NSLog(@"9EUecirKFhxQM3oITjtz8W");
- NSLog(@"39prqyMKltEBzkOgTCGJ72Y");
- NSLog(@"sMA5nUNud2mvX1GHVPRFfBTzYlxayOCh");
- NSLog(@"KqPQm6tSdoO9JCenv");
- NSLog(@"zK8tJhVEvj2kWGNpYIT0iMygnorQ");
- NSLog(@"fDjMCG7XlxreAuhIHv68tEi2p");
- }
- @end
|