文章来源:淘论文网   发布者: 毕业设计   浏览量: 45



还可以点击去查询以下关键词:
[一个]    [滑动]    [缩放]    [轮播]    [iOS 一个可滑动缩放轮播图]   

项目介绍:

为了做到这个效果没少走弯路,之前一直使用TableViewHeaderView来做这个,尝试了半天,结果不行。后来去看百度中一张的下拉放大怎么实现的。看到别人使用contentInset....哎、恍然大悟!

写完后才发现,原来并不是想象的那么难嘛!下面说几个注意的点。当然,我已经封装好了。你只需要不多的代码就能搞定啦!有兴趣的朋友去我的GitHub下载地址就行啦,喜欢给个Star~

首先,想要下拉缩放上面的轮播图,你得把滑动的Offset传给轮播图。

//告诉dragView表格滑动了 CGFloat offset = scrollView.contentOffset.y + kHeaderHeight; [self.dragView dragViewWithOffset:offset];

我们进入这个方法看下做了怎么样的处理

#pragma mark -- 滚动偏移量 - (void)dragViewWithOffset:(CGFloat)offset { if (offset < 0) { NSDictionary *dic = @{@'offset' : [NSString stringWithFormat:@'%f',offset]}; [[NSNotificationCenter defaultCenter] postNotificationName:@'changeSize' object:nil userInfo:dic]; //更新layout CGSize size = self.layout.itemSize; size.height = self.initHeight - offset ; self.layout.itemSize = size; //更新self self.height = self.initHeight; self.y = 0; self.height = self.initHeight - offset; }else { self.y = 0; CGFloat minOffset = self.height; self.y = minOffset > offset ? - offset : - minOffset; } self.collectionView.height = self.height; self.pageControl.y = self.height - kPageControH; }

根据偏移量修改轮播图的height。当偏移量<0的时候,也就是向上拖表格,开题报告,这时候轮播图的Cell大小不再合适当前视图。发个消息告诉cell。改变imageView的size

#pragma mark -- set methed - (void)setImageURL:(NSString *)imageURL { NSURL *dataUrl = [NSURL URLWithString:imageURL]; [self.imageView sd_setImageWithURL:dataUrl placeholderImage:[UIImage imageNamed:@'pageOther.png']]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(zoomScale:) name:@'changeSize' object:nil]; } - (void)zoomScale:(NSNotification *)notification { NSDictionary *dic = notification.userInfo; CGFloat offset = [dic[@'offset'] floatValue]; self.imageView.size = CGSizeMake(self.width, self.height - offset); }

在设置图片URL的时候,正好为每个cell都注册一个通知。接到这个通知修改size。这样就做到了。轮播图和cell内容都是一样大小的了。

至于轮播图的实现我就不多说了。

另外,我加入了定时器,开题报告,自动滚动,为了方便解决循环引用我使用了HWWeakTimer三方。代码很少,但是效果不错也很方便。

关于导航栏和状态栏的动态显示问题,原本我自己写了一套,是放在轮播图中的,但是我觉得放进去不好,耦合性差,如果有人不想改,也许就得修改我的代码了。因此我拆到外面了,修改为使用GKFadeNavigationController这个三方。你只需要继承他的导航控制器,再写一些代码就行了。(我的Demo就是在故事版中继承了这个控制器)
iOS技术交流群:511860085 欢迎加入!

封面。


这里还有:


还可以点击去查询:
[一个]    [滑动]    [缩放]    [轮播]    [iOS 一个可滑动缩放轮播图]   

请扫码加微信 微信号:sj52abcd


下载地址: http://www.taolw.com/down/6831.docx
  • 上一篇:美佳备思的HUD透明定制指示层可定制简单强大
  • 下一篇:启动视定制频