美文网首页iOS DeveloperiOS学习笔记iOS 开发
新浪微博下拉刷新显示最新微博数动画控件的实现

新浪微博下拉刷新显示最新微博数动画控件的实现

作者: iiKris | 来源:发表于2016-07-26 19:40 被阅读366次

    在对新浪微博进行下拉刷新操作时,会从顶部的导航栏下面慢慢向下弹出一条显示刷新获取到的微博数的橙色控件,控件悬停1秒,然后向上回到导航栏下面,然后消失。因为该控件不会随tableView的滚动而滚动,因此该控件不是添加到tableView上的,所以应当将该控件添加到导航栏。该控件可以通过最简单的Label添加背景图片实现。

    示例图片

    代码实现:

    <pre>
    <code>//显示最新微博数量</code>
    <code>-(void)showNewStatusCount:(int *)count{</code>
    <code> //创建Label</code>
    <code> UILabel *label=[[UILabel alloc]init];</code>
    <code> //设置Label的背景图片</code>
    <code> label.backgroundColor=[UIColor colorWithPatternImage:[UIImage imageNamed:@"timeline_new_status_background"]];</code>
    <code> label.width=[UIScreen mainScreen].bounds.size.width;</code>
    <code> label.height=35;</code>
    <code> //设置其他属性</code>
    <code> if (count==0) {</code>
    <code> label.text=@"没有新的微博数据,请稍后再试";</code>
    <code> }else{</code>
    <code> label.text=[NSString stringWithFormat:@"共有%d条新的微博数据",count];</code>
    <code> }</code>

    <code> label.textColor=[UIColor whiteColor];</code>
    <code> label.font=[UIFont systemFontOfSize:16];</code>
    <code> label.textAlignment=NSTextAlignmentCenter;</code>
    <code> label.y=64-label.height;</code>
    <code> //将label添加到导航栏控制器的view中,并且是盖在导航栏下边</code>
    <code> [self.navigationController.view insertSubview:label belowSubview:self.navigationController.navigationBar];</code>

    <code> //动画设置</code>
    <code> CGFloat duration=1.0; //通过定义动画执行的时间来控制动过程的速度</code>
    <code> [UIView animateWithDuration:duration animations:^{</code>

    <code> label.transform=CGAffineTransformMakeTranslation(0, label.height);</code>

    <code> } completion:^(BOOL finished) {</code>
    <code> CGFloat delay=1.0; //定义控件悬停的时间</code>
    <code> [UIView animateWithDuration:duration delay:delay options:UIViewAnimationOptionCurveLinear animations:^{</code>

    <code> label.transform=CGAffineTransformIdentity;</code>

    <code> } completion:^(BOOL finished) {</code>
    <code> //动画控件执行完整个过程后将其从父视图移除</code>
    <code> [label removeFromSuperview];</code>
    <code> }];</code>
    <code> }];</code>
    <code>}</code>
    </pre>

    在程序执行刷新的代码处调用该方法实现该效果。

    小结

    以上方法是针对近期自学新浪微博项目的一点小小总结,行笔简陋,如有错误,望指正。

    相关文章

      网友评论

        本文标题:新浪微博下拉刷新显示最新微博数动画控件的实现

        本文链接:https://www.haomeiwen.com/subject/dpanjttx.html