1.新建小QQ项目

2.将所需用到的图片资源(resource)文件夹,添加到项目中.并新建一个登录页面:LoginViewController.swift

3.修改LoginViewController.swift代码为

import UIKit
class LoginViewController: UIViewController { // }

4.将Main.storyboard的默认的view视图,关联为LoginViewController控制器,并拖控件进入view视图布局.

简单布局如下,

5.登录按钮圆角

 class LoginViewController: UIViewController {
//登录按钮
@IBOutlet weak var btnLogin: UIButton!
override func viewDidLoad() {
//
btnLogin.layer.cornerRadius=4.0
btnLogin.layer.masksToBounds=true
}
}

6.运行一下看看效果:

7.完善App的LaunchScreen.xib和Logo图标设置
将LaunchScreen视图中的Label删除掉,只放一张图片即可

找到Supoorting Files目录下的Info.plist文件双击打开,添加节点:Bundle display name为“小QQ” ,并添加一个节点Icon file 设置为"AppIcon-129x29@2x.png"也就是你要设置的Logo的图片名称。

8.添加初始动画,
*将“帐号view”,“密码view”和“登录按钮” 关联插座(IBOutlet)到controller

    @IBOutlet weak var btnLogin: UIButton!//登录按钮
@IBOutlet weak var accountView: UIView!//帐号组View
@IBOutlet weak var passwordView: UIView!//密码组View
@IBOutlet weak var accountBoxView: UIView!//帐号盒子View

*在viewDidLoad方法里添加初始动画代码

 override func viewDidLoad() {
//登录按钮圆边框
btnLogin.layer.cornerRadius=4.0
btnLogin.layer.masksToBounds=true
//让2个view和1个button从下向上移
UIView.animateWithDuration(0.8, animations: { () -> Void in
//上移值
let upValue:CGFloat=200.0
//accountView上移
var accountFrame:CGRect=self.accountView.frame
accountFrame.origin.y=accountFrame.origin.y-upValue
self.accountView.frame=accountFrame
//passwordView上移
var passwordFrame:CGRect=self.passwordView.frame
passwordFrame.origin.y=passwordFrame.origin.y-upValue
self.passwordView.frame=passwordFrame
//btnLogin上移
var btnLoginFrame:CGRect=self.btnLogin.frame
btnLoginFrame.origin.y=btnLoginFrame.origin.y-upValue
self.btnLogin.frame=btnLoginFrame
})
}

9.展开与收起accountBox(帐号盒子:用来显示已登录过的帐号,可进行帐号切换)

*在storyboad的LoginViewController的View视图上,添加一个UIView 命名为:accountBoxView

*将其关联插座(IBOutlet)到controller

*将帐号右侧的下拉按钮关联动作(IBAction)让它执行:showAccountBox方法:

  //点击下拉按钮弹出/隐藏帐号盒
@IBAction func showAccountBox(sender: UIButton) {
if(sender.selected)
{
UIView.animateWithDuration(0.8, animations: { () -> Void in
//1.将accountbox隐藏出来
self.accountBoxView.hidden=false
//2.将密码组往上移
var passwordFrame:CGRect=self.passwordView.frame
passwordFrame.origin.y=passwordFrame.origin.y-82.0
self.passwordView.frame=passwordFrame
//3.将按钮往上移
var btnLoginFrame:CGRect=self.btnLogin.frame
btnLoginFrame.origin.y=btnLoginFrame.origin.y-82.0
self.btnLogin.frame=btnLoginFrame
}) }else{
UIView.animateWithDuration(0.8, animations: { () -> Void in
//1.将accountbox显示出来
self.accountBoxView.hidden=false
//2.将密码组往下移
var passwordFrame:CGRect=self.passwordView.frame
passwordFrame.origin.y=passwordFrame.origin.y+82.0
self.passwordView.frame=passwordFrame
//3.将按钮往下移
var btnLoginFrame:CGRect=self.btnLogin.frame
btnLoginFrame.origin.y=btnLoginFrame.origin.y+82.0
self.btnLogin.frame=btnLoginFrame
})
}
//将按钮选中状态改变
var nowState:Bool=self.btnLogin.selected
if(nowState==true)
{
self.btnLogin.selected=false
}else
{
self.btnLogin.selected=true
}
}

源码下载地址:http://download.csdn.net/detail/fangwulongtian/8583251

转载请注明来源:http://www.cnblogs.com/wuxian/p/4322627.html

Swift实战-小QQ(第1章):QQ登录界面的更多相关文章

  1. Swift实战-小QQ(第2章):QQ侧滑菜单

    QQ侧滑实现架构:需要建立以下几个ViewController:1.XQBaseViewController 2.LeftViewController3.RightViewController4.Co ...

  2. Swift实战-小QQ(第3章):QQ主界面布局

    1.导航栏外观设定*在AppDelegate.swift文件中的didFinishLaunchingWithOptions方法添加以下代码 func application(application: ...

  3. Flask实战第45天:完成前台登录界面

    我们的注册页面和登录页面有很多相似之处,因此,也可以基于一个模板来实现. 首先创建一个模板html,命名为front_signbase.html, 然后修改注册页面front_signup.html, ...

  4. Android项目实战(十六):QQ空间实现(一)—— 展示说说中的评论内容并有相应点击事件

    大家都玩QQ空间客户端,对于每一个说说,我们都可以评论,那么,对于某一条评论: 白雪公主 回复 小矮人 : 你们好啊~ 我们来分析一下: .QQ空间允许我们 点击 回复人和被回复人的名字就可以进入对于 ...

  5. Python爬虫实战:使用Selenium抓取QQ空间好友说说

    前面我们接触到的,都是使用requests+BeautifulSoup组合对静态网页进行请求和数据解析,若是JS生成的内容,也介绍了通过寻找API借口来获取数据. 但是有的时候,网页数据由JS生成,A ...

  6. .NET Core实战项目之CMS 第九章 设计篇-白话架构设计

    前面两篇文章给大家介绍了我们实战的CMS系统的数据库设计,源码也已经上传到服务器上了.今天我们就好聊聊架构设计,在开始之前先给大家分享一下这几天我一直在听的<从零开始学架构>里面关于架构设 ...

  7. Android中集成QQ登陆和QQ好友分享及QQ空间分享

    extends : http://blog.csdn.net/arjinmc/article/details/38439957 相关官方文档及下载地址: 如果只用分享和登陆,用lite包就可以,体积小 ...

  8. WPF开发实例——仿QQ登录界面

    原文:WPF开发实例--仿QQ登录界面 版权声明:本文为博主原创文章,如需转载请标明转载地址 http://blog.csdn.net/u013981858 https://blog.csdn.net ...

  9. JavaSwing仿QQ登录界面,注释完善,适合新手学习

    使用说明: 这是一个java做的仿制QQ登录界面,界面仅使用一个类, JDK版本为jdk-11 素材包的名字为:素材(下载)请在项目中新建一个名字为“素材”的文件夹. 素材: https://pan. ...

随机推荐

  1. 使用photoshop,把图片背景变成透明

    鄙人使用的是photoshop CS6,win7系统,好了废话不多说,我们开始吧 1.打开photoshop,选择一个要编辑的图片 2.在右下角的图层面板上用鼠标左键快速双击背景图层为图片解锁 3.在 ...

  2. Bootstrap页面布局13 - BS按钮

    bootstrap中的按钮类 一般可以作为按钮的标签有:<a></a>  <button></button>  <input type='butt ...

  3. ESXi云管理平台

    实验室有多台使用ESXi实现虚拟化的服务器,平时管理不便,便通实验室其他同学一起编写了一个基于ESXi的云平台管理系统. 对物理服务器进行管理,实现增加.删除.修改.性能监控. 对虚拟机进行管理,实现 ...

  4. LR调用动态链接库DLL

    什么是动态库? 动态库一般又叫动态链接库(DLL),是Dynamic Link Library 的缩写形式,DLL是一个包含可由多个程序同时使用的代码和数据的库. 动态链接提供了一种方法 ,使进程可以 ...

  5. php浮点数计算问题

    如果用php的+-*/计算浮点数的时候,可能会遇到一些计算结果错误的问题,比如echo intval( 0.58*100 );会打印57,而不是58,这个其实是计算机底层二进制无法精确表示浮点数的一个 ...

  6. 【转】基于laravel制作APP接口(API)

    这篇文章主要介绍了基于laravel制作APP接口(API)的相关资料,需要的朋友可以参考下 前期准备 前言,为什么做以及要做个啥本人姓小名白,不折不扣编程届小白一名,但是自从大一那会儿接触到编程这件 ...

  7. hdc cdc

    CWindowDC dc(this); HDC hdc=dc.GetSafeHdc(); using namespace Gdiplus; Graphics graphics(hdc); graphi ...

  8. ubuntu navicat

    接下来是从网络上下载Chrome对应是版本的包,小编的系统是64位的,因此,执行:wget https://dl.google.com/linux/direct/google-chrome-stabl ...

  9. js弹出确认框,挺全

    一种: <a href="javascript:if(confirm('确实要删除该内容吗?'))location='http://www.google.com'">弹 ...

  10. 【C51】单片机芯片之——图解74HC595

    第一部部分用于快速查阅使用,详细的使用见文章第二部分 引脚图