iOS--xuer(registration)
这个登录页面包含了自适应屏幕的大小,数字用户登录键盘是数字键盘、隐藏键盘、隐藏密码等等。
ViewController.h
#import <UIKit/UIKit.h>
#import "UIViewExt.h"
@interface ViewController : UIViewController<UITextFieldDelegate>
/**
* 背景图片
*/
@property(strong,nonatomic) UIImageView *Imagebackgroud;
/**
* 用户名输入框
*/
@property(strong,nonatomic) UITextField *NameTextfild;
/**
* 密码输入框
*/
@property(strong,nonatomic) UITextField *PasswordTextfild;
/**
* 登录按钮
*/
@property(strong,nonatomic) UIButton *LoginButton;
/**
* 注册按钮
*/
@property(strong,nonatomic) UIButton *RegistrationButton; @end
ViewController.m
#import "ViewController.h"
#define WIDTH self.view.width
#define HEIGHT self.view.height @interface ViewController () @end @implementation ViewController - (void)viewDidLoad {
[super viewDidLoad];
[self setBackgroudImage];
[self setLoginImage];
[self setTextFiled];
[self setButton];
}
#pragma Mark - 设置背景图的方法
-(void)setBackgroudImage
{
self.Imagebackgroud=[[UIImageView alloc] initWithFrame:self.view.frame];
[self.Imagebackgroud setImage:[UIImage imageNamed:@"beijing"]];
[self.view addSubview:self.Imagebackgroud];
} #pragma Mark - 设置输入框
-(void)setTextFiled
{
// 用户名输入框设置
self.NameTextfild=[[UITextField alloc] initWithFrame:CGRectMake(WIDTH *0.1, HEIGHT *0.2, WIDTH*0.8, HEIGHT*0.05)];
self.NameTextfild.backgroundColor=[UIColor clearColor];
self.NameTextfild.placeholder=@"请输入手机号";
// 设置输入键盘为数字键盘
self.NameTextfild.keyboardType=UIKeyboardTypeNumberPad;
// 设置输入框内的图标 默认为不显示
self.NameTextfild.leftView=[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"phoneIcon"]];
self.NameTextfild.leftViewMode=UITextFieldViewModeAlways;
[self.view addSubview:self.NameTextfild];
// 设置用户名输入框下的线
UIView *Nameview=[[UIView alloc]initWithFrame:CGRectMake(WIDTH *0.1, HEIGHT *0.2+HEIGHT*0.05,WIDTH*0.8, )];
Nameview.backgroundColor=[UIColor whiteColor];
[self.view addSubview:Nameview]; // 密码输入框设置
self.PasswordTextfild=[[UITextField alloc] initWithFrame:CGRectMake(WIDTH *0.1,HEIGHT*0.2+HEIGHT*0.06, WIDTH*0.8, HEIGHT*0.05)];
self.PasswordTextfild.backgroundColor=[UIColor clearColor];
self.PasswordTextfild.placeholder=@"请输入密码";
// 设置输入密码保护(隐藏密码)
self.PasswordTextfild.secureTextEntry=YES;
// 设置单击return隐藏键盘需要代理
self.PasswordTextfild.delegate=self;
// 设置输入框内的图标 默认为不显示
self.PasswordTextfild.leftView=[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"passwordIcon"]];
self.PasswordTextfild.leftViewMode=UITextFieldViewModeAlways;
[self.view addSubview:self.PasswordTextfild];
// 设置密码输入框下的线
UIView *Passwordview=[[UIView alloc]initWithFrame:CGRectMake(WIDTH *0.1,HEIGHT*0.31,WIDTH*0.8, )];
Passwordview.backgroundColor=[UIColor whiteColor];
[self.view addSubview:Passwordview];
} #pragma Mark -按钮设置方法
-(void)setButton
{
// 登录按钮设置
self.LoginButton=[[UIButton alloc] initWithFrame:CGRectMake(WIDTH *0.1, HEIGHT*0.35, WIDTH *0.8, HEIGHT * 0.08)];
[self.LoginButton setBackgroundImage:[UIImage imageNamed:@"loginButton"] forState:UIControlStateNormal];
[self.LoginButton setTitle:@"登录" forState:UIControlStateNormal];
[self.view addSubview:self.LoginButton]; // 注册按钮设置
self.RegistrationButton=[[UIButton alloc] initWithFrame:CGRectMake(WIDTH *0.1, HEIGHT * 0.45, WIDTH *0.8, HEIGHT * 0.08)];
[self.RegistrationButton setBackgroundImage:[UIImage imageNamed:@"rigisterButton"] forState:UIControlStateNormal];
[self.RegistrationButton setTitle:@"注册" forState:UIControlStateNormal];
[self.RegistrationButton setTitleColor:[UIColor colorWithRed:0.115 green:0.749 blue:0.769 alpha:1.000] forState:UIControlStateNormal];
[self.view addSubview:self.RegistrationButton]; } #pragma Mark - logo图片设置
-(void)setLoginImage
{
// 欢迎图片设置
UIImageView *welcomeView=[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"welcome"]];
welcomeView.frame=CGRectMake(WIDTH *0.1, HEIGHT*0.05, WIDTH *0.8, HEIGHT *0.08);
[self.view addSubview:welcomeView]; // logo图片设置
UIImageView *LogoView=[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"logo"]];
LogoView.frame=CGRectMake(WIDTH*0.4, HEIGHT-HEIGHT*0.08, WIDTH*0.2, HEIGHT*0.03);
[self.view addSubview:LogoView]; }
#pragma Mark - 设置键盘的隐藏
/**
* 单击空白处隐藏键盘
*
* @param touches 空白处
* @param event 单击
*/
-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
if ([self.NameTextfild isFirstResponder]||[self.PasswordTextfild isFirstResponder]) {
[self.NameTextfild resignFirstResponder];
[self.PasswordTextfild resignFirstResponder];
}
} /**
* 单击return隐藏键盘
*/
-(BOOL)textFieldShouldReturn:(UITextField *)textField
{
[self.PasswordTextfild resignFirstResponder];
return YES;
}
...
@end
运行效果图:
2016-04-06 22:22:01
iOS--xuer(registration)的更多相关文章
- iOS开发(OC)中的命名规范
开小差:最近发现自己有一个经验主义的毛病,不太容易接受新的知识,这对从事技术研发的人来说不太合理,需要改之. 正文:通过读写大量代码我有自己的一套编程思路和习惯,自认为自己的编码习惯还是不错的,代码结 ...
- XMPPFrameWork IOS 开发(六)聊天室
原始地址:XMPPFrameWork IOS 开发(六)聊天室 聊天室 //初始化聊天室 XMPPJID *roomJID = [XMPPJID jidWithString:ROOM_JID]; xm ...
- XMPPFrameWork IOS 开发(一)xmpp简介
原始地址:XMPPFrameWork IOS 开发(一) XMPP : The Extensible Messaging and Presence Protocol 中文全称: 可扩展通讯和表示协议 ...
- XMPPFrameWork IOS 开发(二)- xcode配置
原始地址:XMPPFrameWork IOS 开发(二) 译文地址: Getting started using XMPPFramework on iOS 介绍 ios上的XMPPFramewor ...
- 深度图像配准(Registration)原理
机器视觉中,3D相机产生的深度图像(depth image)通常需要配准(registration),以生成配准深度图像(registed depth image).实际上配准的目的就是想让深度图和彩 ...
- XMPPFrameWork IOS 开发(四)消息和好友上下线
原始地址:XMPPFrameWork IOS 开发(四) 消息 //收到消息 - (void)xmppStream:(XMPPStream *)sender didReceiveMessage:(XM ...
- XMPPFrameWork IOS 开发(三)登录
原始地址:XMPPFrameWork IOS 开发(三) XMPP中常用对象们: XMPPStream:xmpp基础服务类 XMPPRoster:好友列表类 XMPPRosterCoreDataSto ...
- XE6移动开发环境搭建之IOS篇(7):在Mac OSX 10.8中安装XE6的PAServer(有图有真相)
XE6移动开发环境搭建之IOS篇(7):在Mac OSX 10.8中安装XE6的PAServer(有图有真相) 2014-08-22 21:06 网上能找到的关于Delphi XE系列的移动开发环境的 ...
- XE6移动开发环境搭建之IOS篇(2):安装虚拟机(有图有真相)
XE6移动开发环境搭建之IOS篇(2):安装虚拟机(有图有真相) 2014-08-15 22:04 网上能找到的关于Delphi XE系列的移动开发环境的相关文章甚少,本文尽量以详细的内容.傻瓜式的表 ...
- iOS逆向(五)-ipa包重签名
为什么要重签名? 1.在没有源代码的情况下,你已经对某个应用进行了资源修改(比如修改了启动图或图标等).修改完成以后,如果想要让APP可以正常使用,该APP一定要重新签名然后压缩成IPA文件. 2.如 ...
随机推荐
- Web APi之EntityFramework【CRUD】(三)
前言 之前我们系统学习了EntityFramework,个人觉得有些东西不能学了就算完了,必须要学以致用,在Web API上也少不了增(C).删(D).改(U).查(R).鉴于此,我们通过EF来实现W ...
- Angular 结合RequireJs实现模块化开发
angular的指令是模块化很好的一个体现,下面我将只使用指令(不用控制器),结合requirejs,实现模块化开发. 模块化关系图:
- 安装nginx
[yum安装nginx] yum clean all(这步不执行会出现no more mirrors to try错误) cd /etc/yum.repos.d/ vi nginx.repo 填写 [ ...
- 重温JSP学习笔记--El函数库
EL函数库(由JSTL提供的) * 导入标签库:<%@ tablib prefix="fn" uri="http://java.sun.com/jsp/jstl/f ...
- supervisor 安装、配置、常用命令
前言 在 web 应用部署到线上后,需要保证应用一直处于运行状态,在遇到程序异常.报错等情况,导致 web 应用终止时,需要保证程序可以立刻重启,继续提供服务. 所以,就需要一个工具,时刻监控 web ...
- 弹幕文化与HTML5
分享人:herry 弹幕篇:弹幕文化与HTML5 说说弹幕 弹幕文化 1什么是弹幕? 弹(dàn)幕(mù)在国内兴起已经有个把年了,相信很多朋友都差不多知道弹幕这个东西. 弹幕系统最初的起源是一家日 ...
- 四大组件之ContentProvider
前言 ContentProvider作为Android的四大组件之一,是属于需要掌握的基础知识,可能在我们的应用中,对于Activity和Service这两个组件用的很常见,了解的也很多,但是对Con ...
- jQuery-1.9.1源码分析系列(十) 事件系统——事件体系结构
又是一个重磅功能点. 在分析源码之前分析一下体系结构,有助于源码理解.实际上在jQuery出现之前,Dean Edwards的跨浏览器AddEvent()设计做的已经比较优秀了:而且jQuery事件系 ...
- sessionPageState与视图状态存储
这个配置节甚是简单,在MSDN中的介绍也甚是简单:为 ASP.NET 应用程序配置页的视图状态设置. historySize的作用是设置要存储在页历史记录中的项数. 但是这根本是看不明白他是干嘛的,百 ...
- 【配置属性】—Entity Framework 对应表字段的类型的设定配置方法
摘自:http://www.cnblogs.com/nianming/archive/2012/11/07/2757997.html Entity Framework Code First的默认行为是 ...