Commit 4f67617f authored by lujunye's avatar lujunye

添加navigationController

parent 4a2a28c1
......@@ -7,7 +7,7 @@
<key>GeliBusinessPlatform.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>0</integer>
<integer>18</integer>
</dict>
</dict>
</dict>
......
{
"info" : {
"version" : 1,
"author" : "xcode"
}
}
\ No newline at end of file
{
"info" : {
"version" : 1,
"author" : "xcode"
},
"colors" : [
{
"idiom" : "universal",
"color" : {
"color-space" : "srgb",
"components" : {
"red" : "0.517",
"alpha" : "1.000",
"blue" : "1.000",
"green" : "1.000"
}
}
}
]
}
\ No newline at end of file
{
"info" : {
"version" : 1,
"author" : "xcode"
}
}
\ No newline at end of file
{
"info" : {
"version" : 1,
"author" : "xcode"
},
"colors" : [
{
"idiom" : "universal",
"color" : {
"color-space" : "srgb",
"components" : {
"red" : "0.851",
"alpha" : "1.000",
"blue" : "0.297",
"green" : "0.196"
}
}
}
]
}
\ No newline at end of file
//
// BaseView.swift
// GeLiLaiGeWan
//
// Created by geli on 2018/6/22.
// Copyright © 2018年 geli. All rights reserved.
//
import UIKit
class BaseView: UIView {
override init(frame: CGRect) {
super.init(frame: frame)
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
/*
// Only override draw() if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
override func draw(_ rect: CGRect) {
// Drawing code
}
*/
}
//
// BaseViewController.swift
// GeLiLaiGeWan
//
// Created by geli on 2018/6/22.
// Copyright © 2018年 geli. All rights reserved.
//
import UIKit
import SwiftyJSON
import ObjectMapper
import Alamofire
class BaseViewController: UIViewController {
override func viewWillAppear(_ animated: Bool) {
self.navigationController?.navigationBar.isHidden = true
}
override func viewDidLoad() {
super.viewDidLoad()
if IsOldIos() {
self.automaticallyAdjustsScrollViewInsets = false;
}
// Do any additional setup after loading the view.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
//
// NavViewController.swift
// GeLiLaiGeWan
//
// Created by geli on 2018/6/29.
// Copyright © 2018年 geli. All rights reserved.
//
import UIKit
class NavViewController: UINavigationController {
override func viewDidLoad() {
super.viewDidLoad()
self.navigationController?.navigationBar.tintColor = UIColor(named: "主色调")
UIBarButtonItem.appearance().setBackButtonTitlePositionAdjustment(UIOffset(horizontal: -2000, vertical: 0), for: UIBarMetrics.default)//去掉返回图片后面的文字
}
// override func viewDidLayoutSubviews() {
// super.viewDidLayoutSubviews()
//
// }
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
/*
// MARK: - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
// Get the new view controller using segue.destinationViewController.
// Pass the selected object to the new view controller.
}
*/
}
//
// Define.swift
// GeLiLaiGeWan
//
// Created by geli on 2018/6/22.
// Copyright © 2018年 geli. All rights reserved.
//
/*
来个碗Apple开发者账号、密码:
dev@laigewan.com
81338860^geLi
下载链接:
https://itunes.apple.com/cn/app/id1428195489?mt=8
*/
import UIKit
//版本号
let systemVersion = (UIDevice.current.systemVersion as String)
//let UserId = ((UserDefaults.standard.string(forKey: "user_id") != nil) ? (UserDefaults.standard.string(forKey: "user_id")) : "") as! String
//let IsHavUserId = (UserId.count != 0)
//接口地址
//test
//let SERVERCE_ImageHost = "http://admin.lgw.com/"
//let SERVERCE_HOST = "http://admin.lgw.com/api/"
//online
let SERVERCE_ImageHost = "https://api.laigewan.com/upload/images/"
let SERVERCE_HOST = "https://api.laigewan.com/api/"
//视图常量
let IS_IPHONE_X = __CGSizeEqualToSize(CGSize(width: 375.0, height: 812.0),UIScreen.main.bounds.size ) || __CGSizeEqualToSize(CGSize(width: 812.0, height: 375.0),UIScreen.main.bounds.size)||__CGSizeEqualToSize(CGSize(width: 414.0, height: 896.0),UIScreen.main.bounds.size ) || __CGSizeEqualToSize(CGSize(width: 896.0, height: 414.0),UIScreen.main.bounds.size)
let NavHeight = (IS_IPHONE_X ? 88 : 64)
let TabHeight = (IS_IPHONE_X ? 83 : 49)
let NavCGRect = CGRect(x: 0, y: 0, width: Int(UIScreen.main.bounds.size.width), height: NavHeight)
let LoopHeight = UIScreen.main.bounds.size.width / 1.25
func IsOldIos() ->Bool{
if #available(iOS 11.0, *){
return false
}else{
return true
}
}
func x(object: UIView) ->CGFloat {
return object.frame.origin.x
}
func y(object: UIView) -> CGFloat {
return object.frame.origin.y
}
func width(object: UIView) -> CGFloat {
return object.frame.size.width
}
func height(object: UIView) -> CGFloat {
return object.frame.size.height
}
func centerX(object: UIView) -> CGFloat {
return object.center.x
}
func centerY(object: UIView) -> CGFloat {
return object.center.y
}
func setFont(_ size:CGFloat) -> UIFont{
return UIFont.boldSystemFont(ofSize: size)
}
func setColor(red:CGFloat,green:CGFloat,blue:CGFloat)->UIColor{
return UIColor(red: red/255, green: green/255, blue: blue/255, alpha: 1)
}
func isPurnFloat(string: String) -> Bool {
let scan: Scanner = Scanner(string: string)
var val:Float = 0
return scan.scanFloat(&val) && scan.isAtEnd
}
func isPurnInt(string: String) -> Bool {
let scan: Scanner = Scanner(string: string)
var val:Int = 0
return scan.scanInt(&val) && scan.isAtEnd
}
func isPurnNumber(str:String)-> Bool{
if isPurnInt(string: str) || isPurnFloat(string: str){
return true
}else{
return false
}
}
//RGB
func RGB(r:CGFloat,g:CGFloat,b:CGFloat)->UIColor{
return UIColor(red: r/255.0, green: g/255.0, blue: b/255.0, alpha: 1)
}
func isTelNumber(num:NSString)->Bool
{
// let mobile = "^1(3[0-9]|5[0-35-9]|8[025-9])\\d{8}$"
// let CM = "^1(34[0-8]|(3[5-9]|5[017-9]|8[278])\\d)\\d{7}$"
// let CU = "^1(3[0-2]|5[256]|8[56])\\d{8}$"
// let CT = "^1((33|53|8[09])[0-9]|349)\\d{7}$"
// let regextestmobile = NSPredicate(format: "SELF MATCHES %@",mobile)
// let regextestcm = NSPredicate(format: "SELF MATCHES %@",CM )
// let regextestcu = NSPredicate(format: "SELF MATCHES %@" ,CU)
// let regextestct = NSPredicate(format: "SELF MATCHES %@" ,CT)
// if ((regextestmobile.evaluate(with: num) == true)
// || (regextestcm.evaluate(with: num) == true)
// || (regextestct.evaluate(with: num) == true)
// || (regextestcu.evaluate(with: num) == true))
if num.length == 11 {
// {
return true
}
else
{
return false
}
}
func stringToTimeStamp(stringTime:Int)->String {
let interval = TimeInterval(stringTime)
let date = NSDate(timeIntervalSince1970: interval)
// 格式化输出
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = " yyyy-MM-dd HH:mm:ss"
let nowDate = dateFormatter.string(from: date as Date)
return nowDate
}
func isMailBox(mail_ad:String) -> Bool {
let emailRegex = "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}"
let emailTest = NSPredicate.init(format: "SELF MATCHES %@", emailRegex)
return emailTest.evaluate(with: mail_ad)
}
extension UIViewController {
class func currentViewController(base: UIViewController? = UIApplication.shared.keyWindow?.rootViewController) -> UIViewController? {
if let nav = base as? UINavigationController {
return currentViewController(base: nav.visibleViewController)
}
if let tab = base as? UITabBarController {
return currentViewController(base: tab.selectedViewController)
}
if let presented = base?.presentedViewController {
return currentViewController(base: presented)
}
return base
}
}
extension String {
//MARK:--根据开始位置和长度截取字符串
func subString(start:Int, length:Int = -1) -> String {
var len = length
if len == -1 {
len = self.count - start
}
let st = self.index(startIndex, offsetBy:start)
let en = self.index(st, offsetBy:len)
return String(self[st ..< en])
}
}
//MARK:--根据整数返回字符串
func StringByInt(number:Int) -> String {
let num = NSNumber(value: number)
let str = NumberFormatter.localizedString(from: num, number: .none)
return str
}
func TimeByDouble (sender : Double ) -> String {
// 创建一个日期格式器
let timeInterval:TimeInterval = TimeInterval(sender)
let data : Date = Date(timeIntervalSince1970: timeInterval)
let dformatter = DateFormatter()
dformatter.dateFormat = "yyyy.MM.dd HH:mm:ss"
return dformatter.string(from: data)
}
//
// NetworkRequest.swift
// GeLiLaiGeWan
//
// Created by geli on 2018/6/25.
// Copyright © 2018年 geli. All rights reserved.
//
import Foundation
import Alamofire
import SwiftyJSON
import ObjectMapper
import UIKit
private let NetworkRequestShareInstance = NetworkRequest()
class introModel: Mappable {
var code:Int?
var message : String?
var data : String?
required init?( map: Map) {
}
func mapping(map: Map) {
code <- map["code"]
message <- map["message"]
data <- map["data"]
}
}
class introModel1: Mappable {
var code:Int?
var message : String?
var data : urlData?
required init?( map: Map) {
}
func mapping(map: Map) {
code <- map["code"]
message <- map["message"]
data <- map["data"]
}
}
class urlData: Mappable {
var art_id:Int?
var content : String?
required init?( map: Map) {
}
func mapping(map: Map) {
art_id <- map["art_id"]
content <- map["content"]
}
}
class BaseModel: Mappable {
var code:Int?
var message : String?
var data : Any?
required init?( map: Map) {
}
func mapping(map: Map) {
code <- map["code"]
message <- map["message"]
data <- map["data"]
}
}
class NetworkRequest {
class var sharedInstance : NetworkRequest {
return NetworkRequestShareInstance
}
}
//处理更细分的错误情况,错误类型须遵从Error协议
enum DogError : Error{
case DataInvalidError
}
extension NetworkRequest {
//MARK: - GET 请求
// let tools : NetworkRequest.shareInstance!
//MARK: - POST 请求
func postRequest<T:BaseMappable>(_ url:String,_ params:[String:Any],_ type:(_ t:DataResponse<T>)->(),success:@escaping (_ res:Any)->(),failture:@escaping(_ error:Error)->()){
let paths = Bundle.main.path(forResource: "Interface_Z", ofType: "plist")
let dic = NSDictionary (contentsOfFile: (paths! as String))
let dicstr:String = dic?[url] as! String
let allUrl = SERVERCE_HOST + dicstr
print(allUrl)
print(params)
var request = URLRequest(url: URL(string: allUrl)!)
request.httpMethod = "POST"
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.addValue("IOS",forHTTPHeaderField:"CLIENT_TYPE")
let infoD = Bundle.main.infoDictionary
let ver = infoD!["CFBundleShortVersionString"]
request.addValue("\(ver!)",forHTTPHeaderField:"CLIENT_VERSION")
request.timeoutInterval = 10
request.httpBody = try! JSONSerialization.data(withJSONObject: params, options: [])
Alamofire.request(request).responseJSON { (response) in
switch response.result {
case .success(let value):
let json = JSON(value)
print(json)
//SwiftNotice.clear()
if json["code"].intValue == 200 {
success(Mapper<T>().map(JSONObject: value))
}else if json["code"].intValue == 999 {
print("uid错误")
let alt = UIAlertView(title: "提示", message: json["message"].stringValue, delegate: nil, cancelButtonTitle: "确定")
alt.show()
failture(DogError.DataInvalidError)
}else{
let alt = UIAlertView(title: "提示", message: json["message"].stringValue, delegate: nil, cancelButtonTitle: "确定")
alt.show()
failture(DogError.DataInvalidError)
}
case .failure(let error):
//SwiftNotice.clear()
let alt = UIAlertView(title: "提示", message: "网络错误", delegate: nil, cancelButtonTitle: "确定")
failture(error)
print("error:\(error)")
}
}
}
//MARK: - 照片上传
func uploadImage(url:String,image: UIImage, params: [String : String], success:@escaping (_ result: [String: Any])->(), failure:@escaping (_ error: Error)->()) {
let paths = Bundle.main.path(forResource: "Interface_Z", ofType: "plist")
let dic = NSDictionary (contentsOfFile: (paths! as String))
let dicstr:String = dic?[url] as! String
Alamofire.upload(multipartFormData: { (multipartFormData) in
let data = image.jpegData(compressionQuality: 0.5)
let fileName = String.init(describing: NSDate()) + ".png"
// withName:是根据文档决定传入的字符串
multipartFormData.append(data!, withName: "image", fileName: fileName, mimeType: "image/png")
// 遍历添加参数
for (key, value) in params{
// string 转 data
multipartFormData.append(value.data(using: String.Encoding.utf8)!, withName: key)
}
}, to: SERVERCE_HOST+dicstr, encodingCompletion: { (encodingResult) in
switch encodingResult {
case .success(let upload, _, _):
upload.responseJSON { response in
success(response.result.value as! [String: Any])// 已经转为字典
}
case .failure(let encodingError):
failure(encodingError)
}
})
}
func postRequestNoMessage<T:BaseMappable>(_ url:String,_ params:[String:Any],_ type:(_ t:DataResponse<T>)->(),success:@escaping (_ res:Any)->(),failture:@escaping(_ error:Error)->()){
let paths = Bundle.main.path(forResource: "Interface_Z", ofType: "plist")
let dic = NSDictionary (contentsOfFile: (paths! as String))
let dicstr:String = dic?[url] as! String
let allUrl = SERVERCE_HOST + dicstr
print(allUrl)
print(params)
var request = URLRequest(url: URL(string: allUrl)!)
request.httpMethod = "POST"
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.timeoutInterval = 10
request.httpBody = try! JSONSerialization.data(withJSONObject: params, options: [])
Alamofire.request(request).responseJSON { (response) in
switch response.result {
case .success(let value):
let json = JSON(value)
print(json)
//SwiftNotice.clear()
UserDefaults.standard.setValue(json["message"].stringValue, forKey: "jsonMessage")
if json["code"].intValue == 200 {
success(Mapper<T>().map(JSONObject: value))
}else if json["code"].intValue == 999 {
NotificationCenter.default.post(name: Notification.Name(rawValue: "logout"), object: nil)
}else{
if json["code"].intValue == 500 {
success(Mapper<T>().map(JSONObject: value))
}else{
failture(DogError.DataInvalidError)
}
}
case .failure(let error):
//SwiftNotice.clear()
failture(error)
}
}
}
}
//
// LoginModel.swift
// GeliBusinessPlatform
//
// Created by junye lu on 2020/4/14.
// Copyright © 2020 junye lu. All rights reserved.
//
import Foundation
......@@ -20,12 +20,13 @@ class SceneDelegate: UIResponder, UIWindowSceneDelegate {
// This delegate does not imply the connecting scene or session are new (see `application:configurationForConnectingSceneSession` instead).
// Create the SwiftUI view that provides the window contents.
let contentView = ContentView()
let contentView = LoginViewController()
// Use a UIHostingController as window root view controller.
if let windowScene = scene as? UIWindowScene {
let window = UIWindow(windowScene: windowScene)
window.rootViewController = UIHostingController(rootView: contentView)
let rootV = NavViewController(rootViewController: contentView)
window.rootViewController = rootV;
self.window = window
window.makeKeyAndVisible()
}
......
//
// FgPassViewController.swift
// GeliBusinessPlatform
//
// Created by junye lu on 2020/4/14.
// Copyright © 2020 junye lu. All rights reserved.
//
import UIKit
class FgPassViewController: BaseViewController {
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
self.navigationController?.navigationBar.isHidden = false
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
/*
// MARK: - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
// Get the new view controller using segue.destination.
// Pass the selected object to the new view controller.
}
*/
}
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="15702" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
<device id="retina6_1" orientation="portrait" appearance="light"/>
<dependencies>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="15704"/>
<capability name="Named colors" minToolsVersion="9.0"/>
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<objects>
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="FgPassViewController" customModule="GeliBusinessPlatform" customModuleProvider="target">
<connections>
<outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/>
</connections>
</placeholder>
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
<view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="i5M-Pr-FkT">
<rect key="frame" x="0.0" y="0.0" width="414" height="896"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<color key="backgroundColor" name="标题字颜色"/>
<viewLayoutGuide key="safeArea" id="fnl-2z-Ty3"/>
<point key="canvasLocation" x="133" y="154"/>
</view>
</objects>
<resources>
<namedColor name="标题字颜色">
<color red="0.51700001955032349" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</namedColor>
</resources>
</document>
//
// RegisterViewController.swift
// GeliBusinessPlatform
//
// Created by junye lu on 2020/4/14.
// Copyright © 2020 junye lu. All rights reserved.
//
import UIKit
class RegisterViewController: BaseViewController {
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
self.navigationController?.navigationBar.isHidden = false
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
/*
// MARK: - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
// Get the new view controller using segue.destination.
// Pass the selected object to the new view controller.
}
*/
}
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="15702" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
<device id="retina6_1" orientation="portrait" appearance="light"/>
<dependencies>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="15704"/>
<capability name="Named colors" minToolsVersion="9.0"/>
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<objects>
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="RegisterViewController" customModule="GeliBusinessPlatform" customModuleProvider="target">
<connections>
<outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/>
</connections>
</placeholder>
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
<view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="i5M-Pr-FkT">
<rect key="frame" x="0.0" y="0.0" width="414" height="896"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<color key="backgroundColor" name="主色调"/>
<viewLayoutGuide key="safeArea" id="fnl-2z-Ty3"/>
<point key="canvasLocation" x="133" y="154"/>
</view>
</objects>
<resources>
<namedColor name="主色调">
<color red="0.85100001096725464" green="0.19599999487400055" blue="0.29699999094009399" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</namedColor>
</resources>
</document>
//
// LoginViewController.swift
// GeliBusinessPlatform
//
// Created by junye lu on 2020/4/14.
// Copyright © 2020 junye lu. All rights reserved.
//
import UIKit
class LoginViewController: BaseViewController {
@IBAction func forgetPasswordAction(_ sender: Any) {
let vc = FgPassViewController()
self.navigationController?.pushViewController(vc, animated: true)
}
@IBAction func registerAction(_ sender: Any) {
let vc = RegisterViewController()
self.navigationController?.pushViewController(vc, animated: true)
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
/*
// MARK: - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
// Get the new view controller using segue.destination.
// Pass the selected object to the new view controller.
}
*/
}
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="15702" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
<device id="retina6_1" orientation="portrait" appearance="light"/>
<dependencies>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="15704"/>
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<objects>
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="LoginViewController" customModule="GeliBusinessPlatform" customModuleProvider="target">
<connections>
<outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/>
</connections>
</placeholder>
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
<view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="i5M-Pr-FkT">
<rect key="frame" x="0.0" y="0.0" width="414" height="896"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="t61-Md-ABJ">
<rect key="frame" x="267" y="457" width="62" height="30"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<state key="normal" title="忘记密码"/>
<connections>
<action selector="forgetPasswordAction:" destination="-1" eventType="touchUpInside" id="4dU-SE-OkJ"/>
</connections>
</button>
<button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="du0-ic-sYA">
<rect key="frame" x="102" y="457" width="31" height="30"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<state key="normal" title="注册"/>
<connections>
<action selector="registerAction:" destination="-1" eventType="touchUpInside" id="XTb-OE-pq9"/>
</connections>
</button>
</subviews>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<viewLayoutGuide key="safeArea" id="fnl-2z-Ty3"/>
<point key="canvasLocation" x="133" y="102"/>
</view>
</objects>
</document>
......@@ -7,15 +7,15 @@
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForAnalyzing = "YES"
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES">
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "21FA543DECED4F6DC91853F5E1518EB3"
BuildableName = "Pods-GeliBusinessPlatform.framework"
BuildableName = "Pods_GeliBusinessPlatform.framework"
BlueprintName = "Pods-GeliBusinessPlatform"
ReferencedContainer = "container:Pods.xcodeproj">
</BuildableReference>
......@@ -23,14 +23,15 @@
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES"
buildConfiguration = "Debug">
<AdditionalOptions>
</AdditionalOptions>
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
</Testables>
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
......@@ -38,17 +39,14 @@
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
buildConfiguration = "Debug"
allowLocationSimulation = "YES">
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES"
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES">
debugDocumentVersioning = "YES">
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
......
......@@ -7,15 +7,15 @@
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForAnalyzing = "YES"
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES">
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "0B00B2C167CD783351BD1D00BD5AD1F8"
BuildableName = "ReachabilitySwift.framework"
BuildableName = "Reachability.framework"
BlueprintName = "ReachabilitySwift"
ReferencedContainer = "container:Pods.xcodeproj">
</BuildableReference>
......@@ -23,14 +23,15 @@
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES"
buildConfiguration = "Debug">
<AdditionalOptions>
</AdditionalOptions>
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
</Testables>
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
......@@ -38,17 +39,14 @@
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
buildConfiguration = "Debug"
allowLocationSimulation = "YES">
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES"
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES">
debugDocumentVersioning = "YES">
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
......
......@@ -8,51 +8,111 @@
<dict>
<key>isShown</key>
<false/>
<key>orderHint</key>
<integer>0</integer>
</dict>
<key>CryptoSwift.xcscheme</key>
<dict>
<key>isShown</key>
<false/>
<key>orderHint</key>
<integer>1</integer>
</dict>
<key>Dollar.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>10</integer>
</dict>
<key>ESTabBarController.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>11</integer>
</dict>
<key>Hue.xcscheme</key>
<dict>
<key>isShown</key>
<false/>
<key>orderHint</key>
<integer>2</integer>
</dict>
<key>IQKeyboardManagerSwift.xcscheme</key>
<dict>
<key>isShown</key>
<false/>
<key>orderHint</key>
<integer>3</integer>
</dict>
<key>Kingfisher.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>12</integer>
</dict>
<key>MJRefresh.xcscheme</key>
<dict>
<key>isShown</key>
<false/>
<key>orderHint</key>
<integer>4</integer>
</dict>
<key>ObjectMapper.xcscheme</key>
<dict>
<key>isShown</key>
<false/>
<key>orderHint</key>
<integer>5</integer>
</dict>
<key>Pods-GeliBusinessPlatform.xcscheme</key>
<dict>
<key>isShown</key>
<false/>
<key>orderHint</key>
<integer>6</integer>
</dict>
<key>ReachabilitySwift.xcscheme</key>
<dict>
<key>isShown</key>
<false/>
<key>orderHint</key>
<integer>7</integer>
</dict>
<key>Realm.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>13</integer>
</dict>
<key>RealmSwift.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>14</integer>
</dict>
<key>SkeletonView.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>15</integer>
</dict>
<key>SwiftDate.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>16</integer>
</dict>
<key>SwifterSwift.xcscheme</key>
<dict>
<key>isShown</key>
<false/>
<key>orderHint</key>
<integer>8</integer>
</dict>
<key>SwiftyJSON.xcscheme</key>
<dict>
<key>isShown</key>
<false/>
<key>orderHint</key>
<integer>9</integer>
</dict>
<key>ViewAnimator.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>17</integer>
</dict>
</dict>
<key>SuppressBuildableAutocreation</key>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment