Giter Site home page Giter Site logo

newpagedflowview's People

Contributors

pageguo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

newpagedflowview's Issues

通过xib采用自动布局,宽度计算有问题

举例:采用xib布局, 通过在一个cell上放一个view 继承自 NewPagedFlowView ,,上下左右约束都设为0 如果这个xib 的可视界面的宽度为500 那么你的 NewPagedFlowView竟然在任何机型上都是按照500来计算的,,这个很坑啊,,用该是采用 这个cell在具体机型上实际的宽度计算呀

紧急需求

能否在代理里把用户点击的位置也传进去,广告统计方要求传入点击的位置。。。

  • (void)didSelectCell:(PGIndexBannerSubiew *)subView withSubViewIndex:(NSInteger)subIndex;

实现点击的CGPoint

如何添加阴影?

master,怎么给每个page加阴影呢?设置subview的阴影没有效果,是我加的位置不对还是怎么了?

如果旋转屏幕后和旋转屏幕前NewPagedFlowView的size大小不一样,就会出现轮播内部子视图大小不改变

我的方法是:
在 layoutSubviews中添加一段
[_reusableCells removeAllObjects];
_visibleRange = NSMakeRange(0, 0);
// 添加 的是下面这个for循环
for (UIView *view in _cells) {
if ([view isKindOfClass:[UIView class]]) {
[view removeFromSuperview];
}
}

同时在改写:

  • (void)reloadData
    {
    _needsReload = YES;
    [self stopTimer];
    [self setNeedsLayout];
    }

然后在加载NewPagedFlowView的类旋转的方法中添加如下代码

  • (void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id)coordinator {
    if ([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPad) {
    [coordinator animateAlongsideTransition:^(id context) {
    [self.newPagedFlowView reloadData];
    } completion:NULL];
    }
    }

偶现图片不居中,

你好,我想问下一般情况下是没问题的,中间的图片居中,两边各漏出来一点图片,但是有场景会出现中间的图片不居中,左边或者右边跑到了显示范围之外,设置滚动的contentoffset有问题。具体还不能复现这个场景。

应该是cell重用问题

进入使用该框架第一次没事,退出,点几下别的或直接崩溃。。。报野指针错误!
snip20170909_1

解决方式:没有使用cell重用方法,暂时回避错误。

//    PGIndexBannerSubiew *bannerView = [flowView dequeueReusableCell];
//    if (!bannerView) {
       PGIndexBannerSubiew *bannerView = [[PGIndexBannerSubiew alloc] init];
        bannerView.tag = index;
        bannerView.layer.cornerRadius = 9;
        bannerView.layer.masksToBounds = YES;
//    }

- (void)startTimer 方法会被执行两次

将- (void)startTimer 和 - (void)stopTimer 稍作处理

  • (void)startTimer {
    if (self.orginPageCount > 1 && self.isOpenAutoScroll && self.timer == nil) {
    self.timer = [NSTimer scheduledTimerWithTimeInterval:self.autoTime target:self selector:@selector(autoNextPage) userInfo:nil repeats:YES];
    [[NSRunLoop mainRunLoop] addTimer:self.timer forMode:NSRunLoopCommonModes];
    }
    }
  • (void)stopTimer {
    [self.timer invalidate];
    self.timer = nil;
    }

reloadData bug

调用reloadData会引起某两页连接在一起,并有叠加的问题。例如在demo viewDidLoad 中加入:
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(15.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
[pageFlowView reloadData];
});

bug(使用错误导致)

如果是用两个tab,加上两个这种控件,使用网络加载图片的时候,第二个这种控件下载的图片,部分图片下载的图片,会一直显示不上去,除非重新生成这种控件才行,这个bug什么时候能解决

如果将此轮播器添加在一个以scrollView为父类的view上,滑动外部则内部轮播器将会出现UI卡的现象

添加一句话:
[[NSRunLoop mainRunLoop] addTimer:self.timer forMode:NSRunLoopCommonModes];

  • (void)startTimer {
    if (self.orginPageCount > 1 && self.isOpenAutoScroll) {
    self.timer = [NSTimer scheduledTimerWithTimeInterval:self.autoTime target:self selector:@selector(autoNextPage) userInfo:nil repeats:YES];
    [[NSRunLoop mainRunLoop] addTimer:self.timer forMode:NSRunLoopCommonModes];
    }
    }

点击事件

屏幕中间的view可以点击,两侧的View不能点击,我看了代码好像是超出父类的范围

只有一张图片时有bug

只有一张图片时候,循环滚动有bug,会滚没了!希望一张图片时,关闭定时器,不要滚动!
还有能否添加给功能:非当前页可以设置显示大小,比如跟当前页一样大小(之间有间距)。
minimumPageScale属性设置很小的时候(0.1)当前页显示不正常,时大时小。

显示的下标与点击下标错乱不对应bug

cellForPageAtIndex:(NSInteger)index与didSelectCell:XXSubViewIndex:(NSInteger)subIndex
显示的图片index,与点击之后subindex的下标不一致,初步测试,只是第一张与第二张颠倒

崩溃

    cell = [_dataSource flowView:self cellForPageAtIndex:pageIndex % self.orginPageCount];

Thread 1: EXC_BAD_ACCESS (code=1, address=0x18)

bug 反馈

轮播图在首页出现 ,在5s 上面 如果连续使用APP 1个小时 左右 或者停留在这个页面 首页这个页面 不动 也是1个小时左右,人为的反向滑动 或者 正向滑动轮播图,会出现 卡顿的情况,或者 划不动的情况 在6p 或者 7 上目前出现这种情况的概率 ,很小 现在项目里用的是最新的 框架。。

内存不能释放的问题

你好,这个轮播无论是自动轮播还是手动轮播,内存一直在增长。如果首页使用这个轮播,放一会就会卡的APP使用不了。。。。

圆角的设置,不好使

如果中间那个cell尺寸为 100x100 的,我想一个圆形的视图, cornerRadius=50的话,其他就变形了

崩溃

时不时的错误,内存溢出的错误,以下是错误列表 1,-[_CTNativeGlyphStorage flowView:cellForPageAtIndex:]: unrecognized selector sent to instance 0x101634ad0
(null)
2,Application received signal SIGSEGV

1.15

卡片停止自动滚动效果之后,多滑动几次卡片,就会出现卡片重合的bug

当图片是从网络请求的时候,一直有错误

代码是这样写的:在 viewDidLoad 中初始化:

    self.imageArray = [NSMutableArray array]; // 这个存储的是图片的 url 地址

    self.pageFlowView = [[NewPagedFlowView alloc] initWithFrame:CGRectMake(0, 8, WW, (WW - 84) * 9 / 16 + 24)];
    self.pageFlowView.backgroundColor = [UIColor whiteColor];
    self.pageFlowView.delegate = self;
    self.pageFlowView.dataSource = self;
    self.pageFlowView.minimumPageAlpha = 0.4;
    self.pageFlowView.minimumPageScale = 0.85;

    //提前告诉有多少页(由于是从网络请求图片,我注释掉)
//    self.pageFlowView.orginPageCount = self.imageArray.count;

    self.pageFlowView.isOpenAutoScroll = YES;

    /****************************
     使用导航控制器(UINavigationController)
     如果控制器中不存在UIScrollView或者继承自UIScrollView的UI控件
     请使用UIScrollView作为NewPagedFlowView的容器View,才会显示正常,如下
     *****************************/

    UIScrollView *bottomScrollView = [[UIScrollView alloc] initWithFrame:self.pageFlowView.bounds];
    [bottomScrollView addSubview:pageFlowView];

    // 我是放到 Tableview 的头部上
    self.tableView.tableHeaderView = bottomScrollView;

实现其代理和数据源方法:

- (NSInteger)numberOfPagesInFlowView:(NewPagedFlowView *)flowView {
    return self.imageArray.count;
}

- (UIView *)flowView:(NewPagedFlowView *)flowView cellForPageAtIndex:(NSInteger)index{
    PGIndexBannerSubiew *bannerView = (PGIndexBannerSubiew *)[flowView dequeueReusableCell];
    if (!bannerView) {
        bannerView = [[PGIndexBannerSubiew alloc] initWithFrame:CGRectMake(0, 0, WW - 84, (WW - 84) * 9 / 16)];
        bannerView.layer.cornerRadius = 4;
        bannerView.layer.masksToBounds = YES;
    }
    //在这里下载网络图片
    [bannerView.mainImageView sd_setImageWithURL:[NSURL URLWithString:self.imageArray[index]] placeholderImage:[UIImage imageNamed:@"01_January"]];
    return bannerView;
}

同时,我在 viewDidLoad 中开始加载数据,当图片地址数组请求回来的时候,我把图片数组赋值给 self.imageArray,并且执行 pageFlowView 的 reloadData 方法,发现一运行就直接报错,指向这个语句:

NSParameterAssert(pageIndex >= 0 && pageIndex < [_cells count]);

请问一下是不是我用的时候姿势不对?求指导一下。

将NewPagedFlowView设置为tableView的tableHeaderView,均显示不正常

self.tableView.tableHeaderView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, Width, 250)]; [self.tableView.tableHeaderView addSubview:pageFlowView];
或者
self.tableView.tableHeaderView = pageFlowView;
或者
UIScrollView *bottomScrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, ZRScreenW, (ZRScreenW - 84) * 9 / 16 + 24)];
[pageFlowView reloadData];
[bottomScrollView addSubview:pageFlowView];
self.tableView.tableHeaderView = bottomScrollView;

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.