-
Notifications
You must be signed in to change notification settings - Fork 59
Expand file tree
/
Copy pathViewController.swift
More file actions
79 lines (63 loc) · 2.79 KB
/
ViewController.swift
File metadata and controls
79 lines (63 loc) · 2.79 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
//
// ViewController.swift
// Example
//
// Created by Indragie Karunaratne on 2016-04-16.
// Copyright © 2016 Seed Platform, Inc. All rights reserved.
//
import UIKit
import StackViewController
class ViewController: UIViewController {
fileprivate let stackViewController: StackViewController
fileprivate var firstField: UIView?
fileprivate var bodyTextView: UITextView?
init() {
stackViewController = StackViewController()
stackViewController.separatorViewFactory = StackViewContainer.createSeparatorViewFactory()
super.init(nibName: nil, bundle: nil)
edgesForExtendedLayout = UIRectEdge()
title = "Send Message"
navigationItem.rightBarButtonItem = UIBarButtonItem(title: "Send", style: .done, target: self, action: #selector(ViewController.send(_:)))
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
override func loadView() {
view = UIView(frame: CGRect.zero)
view.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(ViewController.didTapView)))
}
override func viewDidLoad() {
super.viewDidLoad()
setupStackViewController()
displayStackViewController()
}
fileprivate func setupStackViewController() {
let toFieldController = LabeledTextFieldController(labelText: "To:")
firstField = toFieldController.view
stackViewController.addItem(toFieldController)
stackViewController.addItem(LabeledTextFieldController(labelText: "Subject:"))
let textView = UITextView(frame: CGRect.zero)
textView.font = UIFont.preferredFont(forTextStyle: UIFont.TextStyle.body)
textView.isScrollEnabled = false
textView.textContainerInset = UIEdgeInsets(top: 15, left: 10, bottom: 0, right: 10)
textView.text = "This field automatically expands as you type, no additional logic required"
stackViewController.addItem(textView, canShowSeparator: false)
bodyTextView = textView
stackViewController.addItem(ImageAttachmentViewController())
}
fileprivate func displayStackViewController() {
addChild(stackViewController)
view.addSubview(stackViewController.view)
_ = stackViewController.view.activateSuperviewHuggingConstraints()
stackViewController.didMove(toParent: self)
}
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
firstField?.becomeFirstResponder()
}
// MARK: Actions
@objc fileprivate func send(_ sender: UIBarButtonItem) {}
@objc fileprivate func didTapView(_ gestureRecognizer: UIGestureRecognizer) {
bodyTextView?.becomeFirstResponder()
}
}