菜鸟成长记-仿今日头条雏形

来源:互联网 发布:mysql中text最大长度 编辑:程序博客网 时间:2024/05/19 05:34

最近有一个需求就是实现类似一个今日头条标签栏的效果,有这个需求就得先看看今日头条的效果是怎样的,看完之后第一件事就是在网上扒一扒类似的代码,copy了几份,都没有合适的,于是就自己动手实现了,现在还只是一个基本实现

效果图:

   

个人没用过制作动态图,所以效果稍差了点,我的频道可以长按移动位置及删除

思路:

标签栏是一个ScrollView,它的内容显而是一组按钮,点击不同的按钮切换对应的正文内容数据,这里就可以分析正文内容数据其实也是一个ScrollView,而正文ScrollView上面则是一个tableView套在里面,由此分析到这就解决了第一个界面的基本控件,那接下来就是逻辑

1:无非就是怎么确定标签栏ScrollView中点击的是哪一个按钮,然后确定这个点击的按钮,将按钮index设置到正文ScrollView

 [contextScroll.setContentOffset.CGPointMake(index*screen_width, 0) animated:YES];这就可以让选择按钮对应正文


2:滑动正文ScrollView对应标签栏的按钮,这个就得实现代理方法

 CGFloat  offset_x =  scrollView.contentOffset.x;

 NSInteger index = offset_x/screen_width;

通过偏移值获取对应按钮的index,就可以实现需求


第二个界面说说长按实现移动和删除思路:我是将按钮添加在一个view中,每个按钮有自己的tag

判断UILongPressGestureRecognizer手势的状态

1:UIGestureRecognizerStateBegan:开始状态下将开始选中的按钮中心点作为起始点,当然起始点是全部的

2UIGestureRecognizerStateChanged:变化状态下利用locationInView:view方法获取到移动的位置

在将移动的位置赋值给当前的按钮的中心点,当前按钮移动时判断是否进入到其他按钮范围内CGRectContainsPoint这个方法进行判断,获取开始的tag和结束移动的tag,之后就是调换位置,

3:UIGestureRecognizerStateEnded:结束状态下,就将最开始的起始点置为当前的按钮的中心点

抖动动画:



代码:

http://download.csdn.net/detail/json_6/9540054


0 0