网上搜索上拉刷新,基本没什么可用信息,大都一篇文章传来传去,描述也不清楚。正好我们项目中有用到上拉刷新,就拿过来对着下拉刷新(上一篇有下拉刷新Demo下载地址)看,并且试着自己修改,修改步骤如下:
1.初始化上拉刷新视图,注意位置与上拉刷新的区别:
refreshView = [[EGORefreshTableFooterView alloc] initWithFrame:CGRectZero]; refreshView.delegate = self; //下拉刷新的控件添加在tableView上 [self.tableView addSubview:refreshView];refreshView的frame应该在表格加载完数据后再设置,因为它的位置与表的contentsize有关:
-(void)viewDidAppear:(BOOL)animated { //frame应在表格加载完数据源之后再设置 [self setRefreshViewFrame]; [super viewDidAppear:animated]; }
setRefreshViewFrame实现如下:
-(void)setRefreshViewFrame { //如果contentsize的高度比表的高度小,那么就需要把刷新视图放在表的bounds的下面 int height = MAX(self.tableView.bounds.size.height, self.tableView.contentSize.height); refreshView.frame =CGRectMake(0.0f, height, self.view.frame.size.width, self.tableView.bounds.size.height); }
2.把箭头、状态提示、上次拉取时间以及刷新是箭头所变的风火轮的位置重置。
3.既然是叫上拉刷新,刷新视图在底部,那么就把上拉刷新的文件及里面的函数名改一下吧,用Footer替代里面所有的Header就行(当然,最好检查一遍,看哪些地方不能改)。
4.有个地方需要注意一下,就是loading的时候,scrollview滚动时候状态变化的条件要注意,要考虑两种情况:一、contentsize的高度小于表的高度;二、contentsize的高度大于表的高度。
5.箭头方向的修改。
EGORefreshTableFooterView文件中修改的地方我都做了标记://modify by shenjx,可以知道哪里是修改了的。Demo地址如下:
猛击这里下载Demo
哥今天完美实现了距离传感器因结构差异导致的失效问题!
这是一个算法。。。。添到驱动中。。。很简单。。不会造成任何额外负荷。。。。
有了这个算法就可以完全秒杀所有因结构不一致而导致的P-sensor失效问题。。
提高良品率。。。
给老板创造价值。。。
给我创造加班机会。。。
为社会奉献。
上节中创建了一个精灵,其实就是一张图片,大家都知道,2D游戏精灵动画就是一张张图片进行切换,产生动画效果。
这里我们直接使用WiEngine提供的动画类,来实现精灵的动画。WiEngine封装好了很多功能,简化了难度,我们只需使用就可以了,不用去重复发明轮子,
俗话说得好,站在巨人的肩膀上,你才能看的更远!
继续在上接的代码基础上,修改VLayer.java
public class VLayer extends Layer implements IAnimationCallback { private Sprite mSprite; public VLayer() { WYSize s = Director.getInstance().getWindowSize(); // 制造精灵 mSprite = Sprite.make(R.drawable.role_3_3); addChild(mSprite); // 设置精灵的位置 mSprite.setPosition(s.width / 2, s.height / 2); // 创建动画 Animation anim = (Animation) new Animation(0, 0.2f, R.drawable.role_3_4, R.drawable.role_3_5, R.drawable.role_3_6, R.drawable.role_3_7, R.drawable.role_3_8).autoRelease(); anim.setCallback(this); Animate a = (Animate) Animate.make(anim).autoRelease(); mSprite.runAction((Action) RepeatForever.make(a).autoRelease()); } @Override public void onAnimationEnded(int arg0) { // TODO Auto-generated method stub } @Override public void onAnimationFrameChanged(int arg0, int arg1) { // TODO Auto-generated method stub } }
代码很好理解,就不细说了,下面是效果图,GIF录制的不好,将就着看吧,
转载请注明出处:http://blog.csdn.net/Vestigge