Swift实战-小QQ(第1章):QQ登录界面

摘要:
8.添加初始动画,*将“帐户视图”、“密码视图”和“登录按钮”关联到controller@IBOutletweakvarbtnLogin:UIButton!

1.新建小QQ项目

Swift实战-小QQ(第1章):QQ登录界面第1张

Swift实战-小QQ(第1章):QQ登录界面第2张

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

Swift实战-小QQ(第1章):QQ登录界面第3张

3.修改LoginViewController.swift代码为

import UIKit
class LoginViewController: UIViewController {

    //

}

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

Swift实战-小QQ(第1章):QQ登录界面第4张

简单布局如下,

Swift实战-小QQ(第1章):QQ登录界面第5张

5.登录按钮圆角

1 class LoginViewController: UIViewController {
2     //登录按钮
3     @IBOutlet weak var btnLogin: UIButton!
4     override func viewDidLoad() {
5         //
6         btnLogin.layer.cornerRadius=4.0
7         btnLogin.layer.masksToBounds=true
8     }
9 }

6.运行一下看看效果:

Swift实战-小QQ(第1章):QQ登录界面第6张

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

Swift实战-小QQ(第1章):QQ登录界面第7张

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

Swift实战-小QQ(第1章):QQ登录界面第8张

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方法:

 1  //点击下拉按钮弹出/隐藏帐号盒
 2     @IBAction func showAccountBox(sender: UIButton) {
 3         if(sender.selected)
 4         {
 5             UIView.animateWithDuration(0.8, animations: { () -> Void in
 6                 //1.将accountbox隐藏出来
 7                 self.accountBoxView.hidden=false
 8                 //2.将密码组往上移
 9                 var passwordFrame:CGRect=self.passwordView.frame
10                 passwordFrame.origin.y=passwordFrame.origin.y-82.0
11                 self.passwordView.frame=passwordFrame
12                 //3.将按钮往上移
13                 var btnLoginFrame:CGRect=self.btnLogin.frame
14                 btnLoginFrame.origin.y=btnLoginFrame.origin.y-82.0
15                 self.btnLogin.frame=btnLoginFrame
16             })
17 
18         }else{
19             UIView.animateWithDuration(0.8, animations: { () -> Void in
20                 //1.将accountbox显示出来
21                 self.accountBoxView.hidden=false
22                 //2.将密码组往下移
23                 var passwordFrame:CGRect=self.passwordView.frame
24                 passwordFrame.origin.y=passwordFrame.origin.y+82.0
25                 self.passwordView.frame=passwordFrame
26                 //3.将按钮往下移
27                 var btnLoginFrame:CGRect=self.btnLogin.frame
28                 btnLoginFrame.origin.y=btnLoginFrame.origin.y+82.0
29                 self.btnLogin.frame=btnLoginFrame
30             })
31         }
32         //将按钮选中状态改变
33         var nowState:Bool=self.btnLogin.selected
34         if(nowState==true)
35         {
36             self.btnLogin.selected=false
37         }else
38         {
39             self.btnLogin.selected=true
40         }
41     }

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

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

免责声明:文章转载自《Swift实战-小QQ(第1章):QQ登录界面》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Oracle:管理 date类型 interval 动态变化的分区:查询、删除Arcmap10.1下安装ArcBrutile0.2.2 (Win7)(转)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

JS获取一行2列的表格数据

JS如下: 如何在JS中获取下拉框中的value和Text值呢? 获取Text值: document.getElementById(s[0]).options[window.document.getElementById(s[0]).selectedIndex].Text; 获取value值: document.getElementById(s[0]).o...

数据加密之SymmetricAlgorithm加密

1 #region SymmetricAlgorithm加密 2 /// <summary> 3 /// 按指定对称算法、键和向量加密字符串 4 /// </summary> 5 public static byte[] Encrypt(...

WSL2 配置及ubuntu18.04安装mysql8.0+

wsl2 完整配置 参考将WSL2作为生产力工具 Installing, this may take a few minutes… WslRegisterDistribution failed with error: 0x800701bc Error: 0x800701bc WSL 2 ??? https://aka.ms/wsl2kernel Pres...

easyui datagrid 可过滤行的数据表格 导出

    //过滤栏表格导出数据                  /* xukf                 * id datagrid id                 * url Action 路径                 */                function exportExcelToFilter(id){      ...

Snort-IPS-入侵防御系统安装及部署小记

安装环境为Ubuntu,使用源码编译方式安装并导入社区Snort规则;通过Splunk做GUI展示,联合防火墙做防御,依据Snort官网文档操作。 Ubuntu 18和20上的Snort 3.0.1用Splunk当SIEM 诺亚·迪特里希 内容介绍 安装Snort 配置网卡 安装OpenApplD 安装Snort规则集 启用内置规则 将PCAP文件传...

将网站部署到服务器上出现_STORAGE_WRITE_ERROR_问题

用的thinkphp3.2的框架,在本地运行没有问题,部署到服务器上(基于centos的LAMP环境)即报错,报错信息如下(完全看不懂...):求大神帮帮忙~~~~(>_<)~~~~ :(_STORAGE_WRITE_ERROR_:./Application/Runtime/Cache/Home/f8995a0e1afcdadc637612fa...