SnapKit代码布局登录示例
登录页面布局
效果图

代码
//
// LoginController.swift
//
// Created by 雷神 on 2017/9/14.
// Copyright © 2017年 aso.ren. All rights reserved.
//
import UIKit
import SnapKit
class LoginController: UIViewController , UITextFieldDelegate {
var txtUser: UITextField! //用户名输入框
var txtPwd: UITextField! //密码输入款
var formView: UIView! //登陆框视图
var horizontalLine: UIView! //分隔线
var confirmButton:UIButton! //登录按钮
var titleLabelOne: UILabel! //标题标签
var titleLabelTwo: UILabel! //标题标签
var topConstraint: Constraint? //登录框距顶部距离约束
override func viewDidLoad() {
super.viewDidLoad()
//视图背景色
self.view.backgroundColor = UIColor(red: 61/255, green: 66/255, blue: 78/255,alpha: 100)
//登录框高度
let formViewHeightWidth = 280
//登录框背景
self.formView = UIView()
self.formView.layer.borderWidth = 0.5
self.formView.layer.borderColor = UIColor.lightGray.cgColor
self.formView.backgroundColor = UIColor.white
self.formView.layer.cornerRadius = 5
self.view.addSubview(self.formView)
//最常规的设置模式
self.formView.snp.makeConstraints { (make) -> Void in
make.left.equalTo(15)
make.right.equalTo(-15)
//存储top属性
self.topConstraint = make.centerY.equalTo(self.view).constraint
make.height.width.equalTo(formViewHeightWidth)
}
//标题一
self.titleLabelOne = UILabel()
self.titleLabelOne.text = "Log in to"
self.titleLabelOne.textColor = UIColor.black
self.titleLabelOne.font = UIFont.systemFont(ofSize: 20)
self.formView.addSubview(self.titleLabelOne)
self.titleLabelOne.snp.makeConstraints { (make) -> Void in
make.centerX.equalTo(self.formView)
make.height.equalTo(24)
make.top.equalTo(self.formView.snp.top).offset(15)
}
//标题二
self.titleLabelTwo = UILabel()
self.titleLabelTwo.text = "Designer News"
self.titleLabelTwo.textColor = UIColor.black
self.titleLabelTwo.font = UIFont.systemFont(ofSize: 30)
self.formView.addSubview(self.titleLabelTwo)
self.titleLabelTwo.snp.makeConstraints { (make) -> Void in
make.centerX.equalTo(self.formView)
make.height.equalTo(34)
make.top.equalTo(self.titleLabelOne.snp.top).offset(25)
}
//用户名图标
let imgIconMail = UIImageView(frame:CGRect(x: 11, y: 11, width: 26, height: 18))
imgIconMail.image = UIImage(named:"icon-mail")
//用户名输入框
self.txtUser = UITextField()
self.txtUser.delegate = self
self.txtUser.placeholder = "Email"
self.txtUser.tag = 100
self.txtUser.borderStyle=UITextBorderStyle.roundedRect
self.txtUser.leftView = UIView(frame:CGRect(x: 0, y: 0, width: 44, height: 44))
self.txtUser.leftViewMode = UITextFieldViewMode.always
self.txtUser.returnKeyType = UIReturnKeyType.next
//用户名左侧图标布局设置
self.txtUser.leftView!.addSubview(imgIconMail)
self.formView.addSubview(self.txtUser)
//布局
self.txtUser.snp.makeConstraints { (make) -> Void in
make.left.equalTo(15)
make.right.equalTo(-15)
make.height.equalTo(44)
make.top.equalTo(self.titleLabelTwo.snp.bottom).offset(20)
}
//密码图标
let imgIconPwd = UIImageView(frame:CGRect(x: 11, y: 11, width: 25, height: 25))
imgIconPwd.image = UIImage(named:"icon-password")
//密码输入框
self.txtPwd = UITextField()
self.txtPwd.delegate = self
self.txtPwd.placeholder = "Password"
self.txtPwd.tag = 101
self.txtPwd.borderStyle=UITextBorderStyle.roundedRect
self.txtPwd.leftView = UIView(frame:CGRect(x: 0, y: 0, width: 44, height: 44))
self.txtPwd.leftViewMode = UITextFieldViewMode.always
self.txtPwd.returnKeyType = UIReturnKeyType.next
//密码框左侧图标布局
self.txtPwd.leftView!.addSubview(imgIconPwd)
self.formView.addSubview(self.txtPwd)
//布局
self.txtPwd.snp.makeConstraints { (make) -> Void in
make.left.equalTo(15)
make.right.equalTo(-15)
make.height.equalTo(44)
make.top.equalTo(self.txtUser.snp.bottom).offset(20)
}
//登录按钮
self.confirmButton = UIButton()
self.confirmButton.setTitle("Log in", for: UIControlState())
self.confirmButton.setTitleColor(UIColor.white,for: UIControlState())
self.confirmButton.layer.cornerRadius = 5
self.confirmButton.backgroundColor = UIColor(red: 44/255, green: 99/255, blue: 210/255,alpha: 100)
self.view.addSubview(self.confirmButton)
self.confirmButton.snp.makeConstraints { (make) -> Void in
make.left.equalTo(35)
make.right.equalTo(-35)
make.height.equalTo(44)
make.top.equalTo(self.txtPwd.snp.bottom).offset(20)
}
}
} 相关推荐
zrtlin 2020-11-09
wikiwater 2020-10-27
heheeheh 2020-10-19
Crazyshark 2020-09-15
ZGCdemo 2020-08-16
jczwilliam 2020-08-16
littleFatty 2020-08-16
idning 2020-08-03
jinxiutong 2020-07-26
lanzhusiyu 2020-07-19
Skyline 2020-07-04
xiaofanguan 2020-06-25
Aveiox 2020-06-23
dragonzht 2020-06-17