QQ登入界面实现

我们知道在App Store中几乎所有软件都设计到账户的登入,而我们最常见的就是QQ,微信,在没有踏入程序员这条不归路之前,看到一个个的界面都感觉好高大上的样子。

在学习的过程中,自己就照着手机上面APP自己比较好奇的界面实现了一下,今天分享一下关于QQ登入界面,完全纯代码,实用StoryBoar太麻烦,个人比较喜欢用代码实现,而几乎所有登入界面几乎都是一样的,只是图标不同,或者还会有其他的拓展功能,不过这里都会了其他的纳豆不是事儿。

废话不多说,直接上代码

import UIKit

class ViewController: UIViewController {

/// 定义属性
var QQNumber = UITextField()
var PassNumber = UITextField()

    override func viewDidLoad() {

        self.view.backgroundColor = UIColor.whiteColor()
        super.viewDidLoad()

        // 添加头图片
        [self .addAllSubViews()];
    }

    // 添加所有子控件
    func addAllSubViews(){

        /// 头像
       /var headImage = UIImageView(frame: CGRectMake(, , , ))
        headImage.image =  UIImage(named:"QQ.png")
        self.view.addSubview(headImage)

        /// QQ号输入提示
       // var phoneText = UILabel(frame: CGRectMake(30, 240, UIScreen.mainScreen().bounds.size.width-60, 30))
       // phoneText.text = "请输入QQ号"
        //self.view.addSubview(phoneText)

        /// QQ号输入框
        var QQNumber = UITextField(frame: CGRectMake(, , UIScreen.mainScreen().bounds.size.width-, ))
        QQNumber.placeholder = "请输入QQ号"
        QQNumber.layer.borderWidth =
        QQNumber.layer.borderColor = UIColor.lightGrayColor().CGColor
        QQNumber.layer.cornerRadius =
        QQNumber.keyboardType = UIKeyboardType.NumberPad
        self.view.addSubview(QQNumber)
        self.QQNumber = QQNumber

        /// 密码输入提示
        //var passText = UILabel(frame: CGRectMake(30, 300, UIScreen.mainScreen().bounds.size.width-60, 30))
        //passText.text = "请输入密码"
        //self.view.addSubview(passText)

        /// 密码输入框
        var PassNumber = UITextField(frame: CGRectMake(, , UIScreen.mainScreen().bounds.size.width-, ))
        PassNumber.placeholder = "请输入密码"
        PassNumber.layer.borderWidth =
        PassNumber.layer.borderColor = UIColor.lightGrayColor().CGColor
        PassNumber.layer.cornerRadius =
        self.view.addSubview(PassNumber)
        self.PassNumber = PassNumber

        /// 密码找回
        var button = UIButton(frame: CGRectMake(, , , ))
        UIButton.buttonWithType(UIButtonType.Custom)
        button.setTitle("忘记密码", forState: UIControlState.Normal)
        button.setTitleColor(UIColor.lightGrayColor(), forState: UIControlState.Normal)
        self.view.addSubview(button)
        button.addTarget(self, action: "onClick", forControlEvents: UIControlEvents.TouchUpInside)

    }

       /// 密码找回方法实现
    func onClick(){

        ///找回密码提示
    UIAlertView(title: "温馨提示", message: "新密码已发送至手机上", delegate: nil, cancelButtonTitle: "确定", otherButtonTitles: "取消").show()
    }
    /**
    点击界面键盘辞去第一响应者
    */
    override func touchesBegan(touches: NSSet, withEvent event: UIEvent) {

        self.QQNumber.resignFirstResponder()
        self.PassNumber.resignFirstResponder()
    }

}

iOS开发——实用篇Swift篇&QQ登入界面实现的更多相关文章

  1. ios开发——实用技术篇Swift篇&播放MP3

    播放MP3 // MARK: - 播放MP3 /*----- mp3 ------*/ //定时器- func updateTime() { //获取音频播放器播放的进度,单位秒 var cuTime ...

  2. ios开发——实用技术篇Swift篇&地址薄、短信、邮件

    //返回按钮事件 @IBAction func backButtonClick() { self.navigationController?.popViewControllerAnimated(tru ...

  3. ios开发——实用技术篇Swift篇&拍照

    拍照 // MARK: - 拍照 func fromPhotograph() { if UIImagePickerController.isSourceTypeAvailable(.Camera) { ...

  4. ios开发——实用技术篇Swift篇&照片选择

    照片选择 // MARK: - 选择照片 /*----- 选择照片 ------*/ @IBAction func addImageButtonClick() { let actionSheet = ...

  5. ios开发——实用技术篇Swift篇&系统声音

    系统声音 // MARK: - 系统声音 /*----- 系统声音 ------*/ @IBAction func systemSound() { //建立的SystemSoundID对象 var s ...

  6. ios开发——实用技术篇Swift篇&视频

    视频 // MARK: - 播放视频 /*----- 播放视频 ------*/ func moviePlayerPreloadFinish(notification:NSNotification) ...

  7. ios开发——实用技术篇Swift篇&录音

    录音 // MARK: - 录音 /*----- 录音 ------*/ var recorder:AVAudioRecorder? //录音器 var player:AVAudioPlayer? / ...

  8. ios开发——实用技术篇Swift篇&加速计和陀螺仪

    加速计和陀螺仪 //返回按钮事件 @IBAction func backButtonClick() { self.navigationController?.popViewControllerAnim ...

  9. ios开发——实用技术篇Swift篇&多点触摸与手势识别

    多点触摸与手势识别 //点击事件 var atap = UITapGestureRecognizer(target: self, action: "tapDo:") self.vi ...

随机推荐

  1. HDU 5876 Sparse Graph

    Sparse Graph Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others)To ...

  2. loadrunner 发送gzip压缩json格式(转)

    转:http://blog.csdn.net/gzh0222/article/details/7711281 使用java vuser实现,发送gzip压缩json格式. /* * LoadRunne ...

  3. codeforces 687B - Remainders Game 数学相关(互质中国剩余定理)

    题意:给你x%ci=bi(x未知),是否能确定x%k的值(k已知) ——数学相关知识: 首先:我们知道一些事情,对于k,假设有ci%k==0,那么一定能确定x%k的值,比如k=5和ci=20,知道x% ...

  4. IOS 时间 日历 处理集合

    1.获得当前时间 从1970开始的秒数 NSTimeInterval time = [[NSDate date[ timeIntervalSince1970]]; NSString * str = [ ...

  5. unity延时方法Invoke和InvokeRepeating

    MonoBehaviour里面有两个内置的延时方法 Invoke Invoke(methodName: string, time: float): void; methodName:方法名 time: ...

  6. Spark学习体会

    在去年图计算工作中,和公司里实习的博士生尝试过Spark后,发现Spark比Hadoop在计算速度上后很大的提高.Spark的计算使用Scala语言编写代码,其中图计算用到了GraphX.对Spark ...

  7. QT-【转】2D编程

    Qt中提供了强大的2D绘图系统,可以使用相同的API在屏幕上和绘图·设备上进行绘制,主要基于QPainter.QPainterDevice和QPainterEngine这3个类. 1.QPainter ...

  8. 一些不错的英文歌曲MV,留个存档!

    Lambada [[http://www.yinyuetai.com/video/265213]]Trouble Is A Friend [[http://www.yinyuetai.com/vide ...

  9. bzoj 2049 [Sdoi2008]Cave 洞穴勘测(LCT)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=2049 [题意] 给定森林,可能有连边或断边的操作,回答若干个连通性的询问. [思路] ...

  10. Linux Oracle服务启动&停止脚本与开机自启动

    在CentOS 6.3下安装完Oracle 10g R2,重开机之后,你会发现Oracle没有自行启动,这是正常的,因为在Linux下安装Oracle的确不会自行启动,必须要自行设定相关参数,首先先介 ...