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--简单弹幕实现

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