ios--简单弹幕实现

作者: AlexPei | 来源:发表于2016-05-17 00:38 被阅读1155次
  • 无代码不博客.实现太简单不做过多介绍,边看代码变解释.
  • 先看效果图片
02.gif

#import "ViewController.h"
#define kScreenW [UIScreen mainScreen].bounds.size.width
#define kScreenH [UIScreen mainScreen].bounds.size.height
#define kScreenB [UIScreen mainScreen].bounds
@interface ViewController ()<UITextFieldDelegate>

//输入框
@property (weak, nonatomic) IBOutlet UITextField *TXTInput;

//判断是否买了会员
@property (nonatomic, assign) BOOL isVip;

@end

  • 设置TXTInput的代理,来监听键盘上return建是否被点击.

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];

    /** 设置代理,监听键盘return键 */
    self.TXTInput.delegate = self;

}

  • 下面是点击return建调用的方法

/** 键盘回车return键调用的方法 */
- (BOOL)textFieldShouldReturn:(UITextField *)textField{

    
   UILabel * lbl = [[UILabel alloc] init];
    [self.view addSubview:lbl];
    
    /** 判断是否是Vip */
//根据是否是Vip来设置label的背景色
    if (self.isVip) {
        
        lbl.backgroundColor = [UIColor redColor];
    } else {
    
        lbl.backgroundColor = [UIColor whiteColor];
    }
    
    lbl.text = self.TXTInput.text;
    
    /** 每次点击return键后清空输入框 */
    self.TXTInput.text = nil;
    
    /** 设置lbl自动适应文字大小 */
    [lbl sizeToFit];
    
    CGFloat w = self.lbl.bounds.size.width;
    CGFloat h = self.lbl.bounds.size.height;
    CGFloat x = kScreenW;

//随机产生y的值,来随机产生lbl的高度
    CGFloat y = arc4random_uniform(kScreenH-self.lbl.bounds.size.height);
    
    lbl.frame = CGRectMake(x, y, w, h);
    
    /** 动画执行 */
    [UIView animateWithDuration:5.0 animations:^{
       
        lbl.frame = CGRectMake(-self.lbl.bounds.size.width, y, w, h);
    }];

    return YES;
}

  • 点击买会员按钮,如果不是会员点击后,变会员同时改变文字.
- (IBAction)clickVipBtn:(UIButton *)sender {
    
    if (self.isVip) {
        self.isVip = NO;
        [sender setTitle:@"买会员" forState:UIControlStateNormal];
        
        /** 存储偏好设置或者服务器 */
        
    } else {
        [sender setTitle:@"去会员" forState:UIControlStateNormal];
        self.isVip = YES;
        /** 存储偏好设置或者服务器 */
    }
}

思路:通过产生随机数产生lbl的不同高度,动画实现通过uiview的动画.

相关文章

  • ios--简单弹幕实现

    无代码不博客.实现太简单不做过多介绍,边看代码变解释. 先看效果图片 设置TXTInput的代理,来监听键盘上re...

  • 弹幕的简单实现

    弹幕是即时出现大量评论的形式,因数量极多很像炮弹形成的幕布而得名。下面简单的实现一个弹幕。 弹幕的简单实现以及循环

  • 实现简单的弹幕

    第一步,首先要在Android的build.gradle文件中引入B站的项目: repositories { ...

  • 使用canvas实现和HTML5 video交互的弹幕效果

    一、canvas实现弹幕性能较好 从技术实现成本角度讲,要实现弹幕效果,最简单的方法就是DOM+CSS3控制,如果...

  • Flutter 实现虎牙/斗鱼 弹幕效果

    先来一张效果图: 实现原理 弹幕的实现原理非常简单,即将一条弹幕从左侧平移到右侧,当然我们要计算弹幕垂直方向上的偏...

  • 学习记录:基于jQuery的简单弹幕墙

    一个非常简单的弹幕墙,仅实现了弹幕显示,没有数据存储和后续播放。实现原理是从输入框获得弹幕内容,经过修饰包装后以添...

  • iOS弹幕原理及实现

    最近公司项目需求,要实现一个弹幕的功能,上网搜集了一些资料,简单实现了弹幕的效果,现在将原理以及实现的过程整理一下...

  • iOS 弹幕开发过程碰到的问题总结

    前言 简单说说弹幕开发碰到的两个小问题。 正文 需求:实现一个弹幕容器,里面同时会有多行互不重叠的、运动中的弹幕 ...

  • Flutter 实现虎牙/斗鱼 弹幕效果

    老孟导读:用Flutter实现弹幕功能,轻松实现虎牙、斗鱼的弹幕效果。 先来一张效果图: 实现原理 弹幕的实现原理...

  • ios 弹幕效果实现过程中,获取弹幕的点击事件

    今天心血来潮突然想实现一个弹幕控件,感觉很高大上,是不是。 其实弹幕控件的实现,主题逻辑很简单,一个主视图...

网友评论

    本文标题:ios--简单弹幕实现

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