|
import UIKit |
|
|
|
class RegistrationNameView: UIView { |
|
|
|
let questionLabel: UILabel = { |
|
let label = UILabel() |
|
|
|
label.font = UIFont.systemFontOfSize(21.0) |
|
label.text = "Hey, what's your name?" |
|
label.textAlignment = .Center |
|
label.textColor = UIColor.lightGrayColor() |
|
label.translatesAutoresizingMaskIntoConstraints = false |
|
|
|
return label |
|
}() |
|
let nameField: UITextField = { |
|
let field = UITextField() |
|
|
|
field.autocorrectionType = .No |
|
field.font = UIFont.boldSystemFontOfSize(28.0) |
|
field.placeholder = "Full name" |
|
field.returnKeyType = .Next |
|
field.textAlignment = .Center |
|
field.translatesAutoresizingMaskIntoConstraints = false |
|
|
|
return field |
|
}() |
|
let nextButton: UIButton = { |
|
let button = UIButton() |
|
|
|
button.setTitle("Continue", forState: .Normal) |
|
button.setTitleColor(UIColor.whiteColor(), forState: .Normal) |
|
button.titleLabel?.font = UIFont.boldSystemFontOfSize(17.0) |
|
button.backgroundColor = UIColor(red: 0.263, green: 0.910, blue: 0.847, alpha: 1) |
|
button.layer.cornerRadius = Global.UISizes.CornerRadius |
|
button.translatesAutoresizingMaskIntoConstraints = false |
|
button.contentEdgeInsets = UIEdgeInsetsMake(16.0, 0, 16.0, 0) |
|
|
|
return button |
|
}() |
|
|
|
var buttonHorizontalConstraint = NSLayoutConstraint() |
|
|
|
override init(frame: CGRect) { |
|
super.init(frame: frame) |
|
|
|
self.backgroundColor = UIColor.whiteColor() |
|
|
|
// Add subviews |
|
self.addSubview(questionLabel) |
|
self.addSubview(nameField) |
|
self.addSubview(nextButton) |
|
|
|
nameField.becomeFirstResponder() |
|
|
|
// Constraint helpers |
|
let spacer = Global.UISizes.SpacingUnit |
|
let margins = self.layoutMarginsGuide |
|
|
|
let layoutConstraints: [NSLayoutConstraint] = { |
|
var constraints = [NSLayoutConstraint]() |
|
|
|
// Title Label Constraints |
|
constraints.append(questionLabel.bottomAnchor.constraintEqualToAnchor(nameField.topAnchor, constant: -(spacer * 2))) |
|
constraints.append(questionLabel.leadingAnchor.constraintEqualToAnchor(margins.leadingAnchor)) |
|
constraints.append(questionLabel.trailingAnchor.constraintEqualToAnchor(margins.trailingAnchor)) |
|
|
|
// Description Label Constraints |
|
constraints.append(nameField.topAnchor.constraintEqualToAnchor(margins.centerYAnchor, constant: spacer * -12)) |
|
constraints.append(nameField.leadingAnchor.constraintEqualToAnchor(margins.leadingAnchor)) |
|
constraints.append(nameField.trailingAnchor.constraintEqualToAnchor(margins.trailingAnchor)) |
|
|
|
// Sign Up Button Constraints |
|
self.buttonHorizontalConstraint = nextButton.bottomAnchor.constraintEqualToAnchor(margins.bottomAnchor, constant: -(spacer * 2)) |
|
constraints.append(self.buttonHorizontalConstraint) |
|
constraints.append(nextButton.leadingAnchor.constraintEqualToAnchor(margins.leadingAnchor)) |
|
constraints.append(nextButton.trailingAnchor.constraintEqualToAnchor(margins.trailingAnchor)) |
|
|
|
return constraints |
|
}() |
|
NSLayoutConstraint.activateConstraints(layoutConstraints) |
|
|
|
} |
|
|
|
required init?(coder aDecoder: NSCoder) { |
|
fatalError("init(coder:) has not been implemented") |
|
} |
|
|
|
func keyboardWillShow(notification: NSNotification) { |
|
if let keyboardSize = (notification.userInfo! as NSDictionary).objectForKey(UIKeyboardFrameBeginUserInfoKey)?.CGRectValue.size { |
|
self.buttonHorizontalConstraint.constant -= keyboardSize.height |
|
} |
|
} |
|
|
|
func keyboardWillHide(notification: NSNotification) { |
|
if let keyboardSize = (notification.userInfo! as NSDictionary).objectForKey(UIKeyboardFrameBeginUserInfoKey)?.CGRectValue.size { |
|
self.buttonHorizontalConstraint.constant += keyboardSize.height |
|
} |
|
} |
|
|
|
} |