美文网首页
ReactiveCocoa 用户交互灵活运用

ReactiveCocoa 用户交互灵活运用

作者: Geniune | 来源:发表于2018-10-16 17:14 被阅读13次

需求:用户输入账号(长度>11)、密码(长度>=6),否则“登录”按钮置为半透明(alpha属性, CGFloat型)且不可点击(enable属性, BOOL型)

这个用户体验需求看似非常繁琐,传统思路使用UITextFieldDelegate确实很费神
但是,RAC宏方法即可轻松实现:

RAC(button对象, button属性)
@property (nonatomic) UITextField *accountField;//账号输入框
@property (nonatomic) UITextField *passwordField;//密码输入框
@property (nonatomic) UIButton *loginBtn;//登录按钮

在对应视图控制器viewDidLoad方法中实现下列方法:

NSInteger x = 11;//账号限制长度
NSInteger y = 6;//密码限制长度

//UIButton.enable
RAC(_loginBtn, enabled) = [RACSignal combineLatest:@[_accountField.rac_textSignal, _passwordField.rac_textSignal] reduce:^id(NSString *account, NSString *password){
    
    return @(account.length > x &&  password.length >= y);
}];
//UIButton.alpha
RAC(_loginBtn, alpha) = [RACSignal combineLatest:@[_accountField.rac_textSignal, _passwordField.rac_textSignal] reduce:^id(NSString *account, NSString *password){
    
    return (account.length > x &&  password.length >= y) ? @(1.0f):@(0.5f);
}];

效果展示:


show.gif

其实ReactiveCocoa可以轻松实现的类似功能远不止这些,例如:先检查当前用户输入的账号是否已注册,再进行登录;限制UITextField输入的字符串长度、内容等

如果该内容对你所有帮助,就请点个喜欢哈

相关文章

  • ReactiveCocoa 用户交互灵活运用

    需求:用户输入账号(长度>11)、密码(长度>=6),否则“登录”按钮置为半透明(alpha属性, CGFloat...

  • 最快让你上手ReactiveCocoa之基础篇

    前言 很多blog都说ReactiveCocoa好用,然后各种秀自己如何灵活运用ReactiveCocoa,但是感...

  • ReactiveCocoa之学习篇

    前言 很多blog都说ReactiveCocoa好用,然后各种秀自己如何灵活运用ReactiveCocoa,但是感...

  • ReactiveCocoa入门之基础篇

    前言 很多blog都说ReactiveCocoa好用,然后各种秀自己如何灵活运用ReactiveCocoa,但是感...

  • ReatIveCocoa入门

    前言 很多blog都说ReactiveCocoa好用,然后各种秀自己如何灵活运用ReactiveCocoa,但是感...

  • 京东小程序产品规范

    产品交互风格定义 交互定义 用户交互的重要性 产品功能是否能和用户做好交互,重要是能够引导用户,给用户意料中的反馈...

  • 认识交互设计

    一、交互设计认知与理解 1、什么是交互设计? a.交互设计的含义:用户-产品-环境 用户:目标用户群体(典型用户)...

  • 用户交互

    User Interaction User considerations Terminology: [if !su...

  • 用户交互

    ARX与用户交互的接口如下: 与用户交互接口的输入与输出都是基于 UCS 的。比如:acedGetPoint中,传...

  • 用户交互

    //所有控件的用户交互//例如:self.textField.userInteractionEnabled = ...

网友评论

      本文标题:ReactiveCocoa 用户交互灵活运用

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