登陆界面的简单编写(通过NSNotificationCenter)

在介绍内容的之前,先看一下实现结果。

通过细节可以发现,只有当手机号与密码都输入的情况登录按钮才会变亮。那么这是怎么实现的呢?

首先我们要知道,这种情况的发生的首要条件便是每时每刻都知道两个TextField的text。那么什么方法可以实现呢,有一个十分老笨的方法。那就是通过Nstimer,每秒都检查TextField的text内容。显然这种方法十分消耗内存,实际开发中是不可能采用的,但是对于新手来说,未必不是一种开发大脑的途径。闲话少说,下面介绍今天的主角NSNotificationCenter。

NSNotificationCenter是一种监听机制。

配合UITextFieldTextDidChangeNotification即可实现时刻监听。

由于本文旨在介绍思想,基本知识点我就不介绍了。想要学习的童鞋可以查看其他博客,如有需要也可以评论本文,我会在看到评论的情况下为大家讲解知识点。

代码如下(只是关键所在,控件大家可以自己多动动手):

//
//  ViewController.m
//  CX-login
//
//  Created by ma c on 16/1/22.
//  Copyright (c) 2016年 xubaoaichiyu. All rights reserved.
//

#import "ViewController.h"
#import "CustomerTextField.h"
#import "CustomerButton.h"
@interface ViewController ()
//提供全局变量 TextField
@property (nonatomic, strong) UITextField* textFiledTemp1;
@property (nonatomic, strong) UITextField* textFiledTemp2;
@property (nonatomic, strong) UIButton* btn;
@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    //view背景颜色
    self.view.backgroundColor = [UIColor colorWithRed:247/255.0f green:248/255.0f blue:243/255.0f alpha:1];
    //设置TextFiled
    CustomerTextField* textField1 = [[CustomerTextField alloc]initWithFrame:CGRectMake(40, 50, SCREEN_WIDTH-80, 40) imageName:@"userName" placeholder:@"请输入手机号"];
    [self.view addSubview:textField1];
    self.textFiledTemp1 = textField1;
    //    textField1.keyboardType = UIKeyboardTypeNumberPad;// 键盘type
    CustomerTextField* textField2 = [[CustomerTextField alloc]initWithFrame:CGRectMake(40, 120, SCREEN_WIDTH-80, 40) imageName:@"password" placeholder:@"请输入密码"];
    textField2.secureTextEntry = YES;
    [self.view addSubview:textField2];
    self.textFiledTemp2 = textField2;
    //设置登录Button
    self.btn = [[CustomerButton alloc]initWithFrame:CGRectMake(40, 210, SCREEN_WIDTH-80, 40) backgroundImageName:@"beijing" title:@"登录"];
    self.btn.enabled = NO;
    [self.view addSubview:self.btn];
    [self NotificationCenter];

}

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
    [self.view endEditing:YES];
}
//通知中心 监听Textfield
-(void)NotificationCenter{

    [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(textDidChangeNotification:) name:UITextFieldTextDidChangeNotification object:nil];

}
// 实现按钮状态转变
-(void)textDidChangeNotification:(NSNotification*)notifi{
    if ([self.textFiledTemp1.text isEqualToString:@""]||[self.textFiledTemp2.text isEqualToString:@""]) {
        self.btn.enabled = NO;
    }
    else{
        self.btn.enabled = YES;
    }
}

@end
时间: 2024-07-29 19:22:21

登陆界面的简单编写(通过NSNotificationCenter)的相关文章

Eclipse通过jdbc连接数据库制作简单登陆界面

一.前言: 做网站开发,要求有多种搭配方式,前台技术可以使用PHP.ASP.JSP.ASP.NET.CGI等任何一种: 需要用到的基础语言用的最多的就是HTML/CSS.JS.JAVA.XML这些了,HTML/CSS+JS可以实现对界面的描绘渲染,而JAVA则可以做后台数据处理,XML也是可以当作传输数据的介质(思考:XML比HTML强大这么多,为什么它没能替代HTML?): 这篇文章通过简单的JSP文件实现登陆界面,所以只用到了以下技术: HTML/CSS,简单演示就不做CSS样式了,可自行学

IOS简单的登陆界面

主要需要注意的几个问题: 1.导入图片方式最好用文件导入 代码: 在ViewController.m文件中 2.UILable常用属性 @property(nonatomic,copy)   NSString           *text; //设置文本内容 @property(nonatomic,retain) UIFont             *font; //设置字体 @property(nonatomic,retain) UIColor            *textColor;

简单登陆界面的编辑

界面创造: 这个界面运用了一些基本的Java类,首先用JFrame创建一个登陆界面内容面板,大小固定好.再用Dimension类确定了内容面板的高度与宽度,运用获取位置的代码把面板显示在屏幕中央.整个界面采用的是流式布局.在添加两个Jabel 组件标签分别是账号和密码,用代码固定位置.分别在标签后面添加一个JTextField组件并固定好位置用来输入账号密码.之后添加一个Jbutton组件,添加一个登陆按钮固定位置与大小.这样一个简单的图形用户界面就做好了 . 功能实现: 在mian程序中给us

easyui简单登陆界面

原文:easyui简单登陆界面 源代码下载地址:http://www.zuidaima.com/share/1550463738088448.htm easyui一个简单的登录页面

Web 登陆界面---简单模块1

今天学习登陆界面的基本模块,其中几个基本的元素 a元素.form元素.布局元素(table\tr\td).加粗(b).input元素 1.<a href="">内容</a> 其中href属性 表示的是页面地址,相当于一个超链接,点击该内容则跳转到这个页面地址. 2.<form action="" method="post"> 内容</form> form元素必有action method两个属性,其

用Html写一个简单的登陆界面

<!DOCTYPE html> <html> <title>登陆页面</title> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <form name = logon method = post> <table> <tr>

一个简单WPF登陆界面,包含记住密码,自动登录等功能,简洁美观

简介:这是一个自己以前用WPF设计的登陆界面,属于一个实验性的界面窗体,如果用于产品还很有不足.但也是有一点学习价值.后台代码略有复杂,但基本上都有注释 分类,略有代码经验的一般都能看懂. 登陆界面外观:可以对登陆成功的信息,进行保存.包括记住密码,自动登陆等信息,默认显示上一次登陆成功的用户信息. 登陆界面保存的登陆信息: 可以删除不必要的登陆信息 登陆界面登陆Loading状态显示界面:登陆中显示遮罩层 在1.5秒左右的时间内可以取消登录状态 源码下载: 点击下载源码

Java 简单的登陆界面

刚接触Java没多久,可能讲的比较浅显,若有不妥之处还望指正~ ······创建一个登陆界面类 类中定义显示界面的函数,类型public void 名字 (我就叫它ShowUI吧): 一个界面由许多组件组成:包含显示.装饰的图片,账号框,密码框,复选框,按钮等等,这些组件不可能是集合显示的,所以需要一个载体--也称作顶级容器或者窗体,Java中这种类型叫做JFrame(在文件javax.swing.JFrame中,这个其实不用记,如果使用eclipse,可直接将鼠标放在JFrame处,点击就可以

WPF和Expression Blend开发实例:模拟QQ登陆界面打开和关闭特效

不管在消费者的心中腾讯是一个怎么样的模仿者抄袭者的形象,但是腾讯在软件交互上的设计一直是一流的.正如某位已故的知名产品经理所说的:设计并非外观怎样,感觉如何.设计的是产品的工作原理.我觉得腾讯掌握了其精髓.在2013版的桌面版QQ中,腾讯的登陆界面在打开的时候有一个展开的过程,而关闭的时候有个收缩的过程.效果如图: 借助WPF和Expression Blend,我们可以轻易的实现这么一个效果,最终用比较慢的速率实现这个效果如下: 这个效果一共能够分成两个部分:展开和收缩,具体的代码如下: 收缩的