mirror of
https://github.com/wahyd4/Yep.git
synced 2026-08-11 05:45:56 +10:00
151 lines
4.6 KiB
Swift
151 lines
4.6 KiB
Swift
//
|
|
// RegisterPickNameViewController.swift
|
|
// Yep
|
|
//
|
|
// Created by NIX on 15/3/16.
|
|
// Copyright (c) 2015年 Catch Inc. All rights reserved.
|
|
//
|
|
|
|
import UIKit
|
|
import Ruler
|
|
|
|
class RegisterPickNameViewController: BaseViewController {
|
|
|
|
@IBOutlet private weak var pickNamePromptLabel: UILabel!
|
|
@IBOutlet private weak var pickNamePromptLabelTopConstraint: NSLayoutConstraint!
|
|
|
|
@IBOutlet private weak var promptTermsLabel: UILabel!
|
|
|
|
@IBOutlet private weak var nameTextField: BorderTextField!
|
|
@IBOutlet private weak var nameTextFieldTopConstraint: NSLayoutConstraint!
|
|
|
|
private lazy var nextButton: UIBarButtonItem = {
|
|
let button = UIBarButtonItem(title: NSLocalizedString("Next", comment: ""), style: .Plain, target: self, action: "next:")
|
|
return button
|
|
}()
|
|
|
|
private var isDirty = false {
|
|
willSet {
|
|
nextButton.enabled = newValue
|
|
promptTermsLabel.alpha = newValue ? 1.0 : 0.5
|
|
}
|
|
}
|
|
|
|
override func viewDidLoad() {
|
|
super.viewDidLoad()
|
|
|
|
animatedOnNavigationBar = false
|
|
|
|
view.backgroundColor = UIColor.yepViewBackgroundColor()
|
|
|
|
navigationItem.titleView = NavigationTitleLabel(title: NSLocalizedString("Sign up", comment: ""))
|
|
|
|
navigationItem.rightBarButtonItem = nextButton
|
|
|
|
pickNamePromptLabel.text = NSLocalizedString("What's your name?", comment: "")
|
|
|
|
let text = NSLocalizedString("By tapping Next you agree to our terms.", comment: "")
|
|
let textAttributes: [String: AnyObject] = [
|
|
NSFontAttributeName: UIFont.systemFontOfSize(14),
|
|
NSForegroundColorAttributeName: UIColor.grayColor(),
|
|
]
|
|
let attributedText = NSMutableAttributedString(string: text, attributes: textAttributes)
|
|
let termsAttributes: [String: AnyObject] = [
|
|
NSForegroundColorAttributeName: UIColor.yepTintColor(),
|
|
NSUnderlineStyleAttributeName: NSUnderlineStyle.StyleSingle.rawValue,
|
|
]
|
|
let tapRange = (text as NSString).rangeOfString(NSLocalizedString("terms", comment: ""))
|
|
attributedText.addAttributes(termsAttributes, range: tapRange)
|
|
|
|
promptTermsLabel.attributedText = attributedText
|
|
promptTermsLabel.textAlignment = .Center
|
|
promptTermsLabel.alpha = 0.5
|
|
|
|
promptTermsLabel.userInteractionEnabled = true
|
|
let tap = UITapGestureRecognizer(target: self, action: "tapTerms:")
|
|
promptTermsLabel.addGestureRecognizer(tap)
|
|
|
|
nameTextField.backgroundColor = UIColor.whiteColor()
|
|
nameTextField.textColor = UIColor.yepInputTextColor()
|
|
nameTextField.placeholder = " "//NSLocalizedString("Nickname", comment: "")
|
|
nameTextField.delegate = self
|
|
nameTextField.addTarget(self, action: "textFieldDidChange:", forControlEvents: .EditingChanged)
|
|
|
|
pickNamePromptLabelTopConstraint.constant = Ruler.iPhoneVertical(30, 50, 60, 60).value
|
|
nameTextFieldTopConstraint.constant = Ruler.iPhoneVertical(30, 40, 50, 50).value
|
|
|
|
nextButton.enabled = false
|
|
}
|
|
|
|
override func viewWillAppear(animated: Bool) {
|
|
super.viewWillAppear(animated)
|
|
|
|
}
|
|
|
|
override func viewDidAppear(animated: Bool) {
|
|
super.viewDidAppear(animated)
|
|
|
|
nameTextField.becomeFirstResponder()
|
|
}
|
|
|
|
// MARK: Navigation
|
|
|
|
override func shouldPerformSegueWithIdentifier(identifier: String, sender: AnyObject?) -> Bool {
|
|
|
|
guard navigationController?.topViewController == self else {
|
|
return false
|
|
}
|
|
|
|
return true
|
|
}
|
|
|
|
// MARK: Actions
|
|
|
|
@objc private func tapTerms(sender: UITapGestureRecognizer) {
|
|
if let URL = NSURL(string: YepConfig.termsURLString) {
|
|
yep_openURL(URL)
|
|
}
|
|
}
|
|
|
|
@objc private func textFieldDidChange(textField: UITextField) {
|
|
guard let text = textField.text else {
|
|
return
|
|
}
|
|
|
|
isDirty = !text.isEmpty
|
|
}
|
|
|
|
@objc private func next(sender: UIBarButtonItem) {
|
|
showRegisterPickMobile()
|
|
}
|
|
|
|
private func showRegisterPickMobile() {
|
|
|
|
guard let text = nameTextField.text else {
|
|
return
|
|
}
|
|
|
|
let nickname = text.trimming(.WhitespaceAndNewline)
|
|
YepUserDefaults.nickname.value = nickname
|
|
|
|
performSegueWithIdentifier("showRegisterPickMobile", sender: nil)
|
|
}
|
|
}
|
|
|
|
extension RegisterPickNameViewController: UITextFieldDelegate {
|
|
|
|
func textFieldShouldReturn(textField: UITextField) -> Bool {
|
|
|
|
guard let text = textField.text else {
|
|
return true
|
|
}
|
|
|
|
if !text.isEmpty {
|
|
showRegisterPickMobile()
|
|
}
|
|
|
|
return true
|
|
}
|
|
}
|
|
|