代码最下边有下载地址。

做这个demo的主要心得就是自适应所有的屏幕,要先布局大的框架,再一步一步设置小的细节。

看一下效果

再看一下自动适应所有屏幕的效果:

keyboard打开时整个frame上移一个keyboard的高度

 override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib. // btn
loginBtn.layer.cornerRadius = // text
userText.delegate = self
passwordText.delegate = self NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(ViewController.keyboardWillShow(_:)), name: UIKeyboardWillShowNotification, object: nil)
NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(ViewController.keyboardWillHide(_:)), name: UIKeyboardWillHideNotification, object: nil) } func keyboardWillShow(notification: NSNotification) {
if isMovied {
return
}
isMovied = true
if let keyboardSize = (notification.userInfo?[UIKeyboardFrameBeginUserInfoKey] as? NSValue)?.CGRectValue() { UIView.animateWithDuration(0.25, animations: {
self.view.frame.origin.y -= keyboardSize.height
}
)
} } func keyboardWillHide(notification: NSNotification) { isMovied = false
if let keyboardSize = (notification.userInfo?[UIKeyboardFrameBeginUserInfoKey] as? NSValue)?.CGRectValue() {
UIView.animateWithDuration(0.25, animations: {
self.view.frame.origin.y += keyboardSize.height
})
}
}

别的就没有什么技术点了,大家有时间下载代码看一下吧。

源代码:FaceBookLoginView.zip

最新文章

  1. Activity之间传递参数(四)
  2. [转]使用EasyRsa3为OpenVPN生成密码
  3. node.js 基础学习笔记3 -http
  4. struts2的 result 通配符 OGNL
  5. window7资源管理器一直重启(百度知道找到可用)
  6. TP复习15
  7. Jquery EasyUi实战教程布局篇
  8. 对敏捷开发的误解(转自MBAlib)
  9. 转 Web APi之认证(Authentication)两种实现方式【二】(十三)
  10. Asp.Net Mvc: 浅析TempData机制(转发 作者: Tristan G )
  11. shiro基础学习(二)—shiro认证
  12. BZOJ 1935: [Shoi2007]Tree 园丁的烦恼 [树状数组 离线 离散化]
  13. Selenium+Chrome/phantomJS模拟浏览器爬取淘宝商品信息
  14. idea和androidstudio的首次git配置一些问题
  15. UNIX网络编程——网络层:IP
  16. 使用EasyNetQ简化RabbitMQ操作
  17. MOT南京站 | 卓越研发之路:锻造顶级后端系统
  18. Mysql系列八:Mycat和Sharding-jdbc的区别、Mycat分片join、Mycat分页中的坑、Mycat注解、Catlet使用
  19. Vue系列之 => 钩子函数生命周期
  20. oracle数据库冷恢复

热门文章

  1. Linux发邮件之mail命令
  2. asp.net core 依赖注入问题
  3. A2W、W2A、A2T、T2A的使用方法
  4. Java三大框架之——Hibernate中的三种数据持久状态和缓存机制
  5. 3.1 js基本概念
  6. Microsoft Dynamics CRM 2013 Js Odata 查询
  7. Web Mercator Non-Conformal, Non-Mercator
  8. Node.js学习——HTTP
  9. sublime 相关配置
  10. BigCouch资料整理