网上搜索上拉刷新,基本没什么可用信息,大都一篇文章传来传去,描述也不清楚。正好我们项目中有用到上拉刷新,就拿过来对着下拉刷新(上一篇有下拉刷新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