Created
February 4, 2017 15:05
-
-
Save starhoshi/3c62096ed5e39ada765ea0e81ac903f6 to your computer and use it in GitHub Desktop.
SnapKit で画面を作ってみる遊び
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import UIKit | |
import SnapKit | |
import RxSwift | |
import RxCocoa | |
final class ManageView: UIView { | |
let descriptionLabel = UILabel() | |
let greetingTitleLabel = UILabel() | |
let greetingLabel = UILabel() | |
let segmented = UISegmentedControl(items: ["挨拶の始まり選択", "自由入力"]) | |
let freeTextField = UITextField() | |
let stackView = UIStackView() | |
let morning = UIButton(type: .system) | |
let afternoon = UIButton(type: .system) | |
let night = UIButton(type: .system) | |
let midnight = UIButton(type: .system) | |
let nameField = UITextField() | |
init() { | |
super.init(frame: .zero) | |
backgroundColor = UIColor.cyan | |
addSubview(descriptionLabel) | |
descriptionLabel.text = "いろいろやってみような" | |
descriptionLabel.textAlignment = .center | |
descriptionLabel.snp.makeConstraints { make in | |
make.top.equalTo(80) | |
make.left.equalTo(10) | |
make.right.equalTo(-10) | |
} | |
addSubview(greetingTitleLabel) | |
greetingTitleLabel.text = "挨拶の練習" | |
greetingTitleLabel.snp.makeConstraints { make in | |
make.top.equalTo(descriptionLabel.snp.bottom).offset(8) | |
make.left.equalTo(8) | |
make.width.equalTo(100) | |
} | |
addSubview(greetingLabel) | |
greetingLabel.text = "Label" | |
greetingLabel.textColor = UIColor.red | |
greetingLabel.snp.makeConstraints { make in | |
make.top.equalTo(descriptionLabel.snp.bottom).offset(8) | |
make.left.equalTo(greetingTitleLabel.snp.right).offset(8) | |
} | |
addSubview(segmented) | |
segmented.selectedSegmentIndex = 0 | |
segmented.snp.makeConstraints { make in | |
make.top.equalTo(greetingTitleLabel.snp.bottom).offset(8) | |
make.left.equalTo(8) | |
make.right.equalTo(-8) | |
} | |
addSubview(freeTextField) | |
freeTextField.placeholder = "自由入力" | |
freeTextField.borderStyle = .roundedRect | |
freeTextField.snp.makeConstraints { make in | |
make.top.equalTo(segmented.snp.bottom).offset(8) | |
make.left.equalTo(8) | |
make.right.equalTo(-8) | |
} | |
addSubview(stackView) | |
stackView.backgroundColor = UIColor.darkText | |
stackView.axis = .horizontal | |
stackView.alignment = .fill | |
stackView.distribution = .fillEqually | |
stackView.addArrangedSubview(morning) | |
stackView.addArrangedSubview(afternoon) | |
stackView.addArrangedSubview(night) | |
stackView.addArrangedSubview(midnight) | |
stackView.snp.makeConstraints { make in | |
make.height.equalTo(40) | |
make.top.equalTo(freeTextField.snp.bottom).offset(8) | |
make.left.equalTo(8) | |
make.right.equalTo(-8) | |
} | |
morning.setTitle("おはよう", for: .normal) | |
afternoon.setTitle("こんにちは", for: .normal) | |
night.setTitle("こんばんは", for: .normal) | |
midnight.setTitle("真夜中", for: .normal) | |
addSubview(nameField) | |
nameField.placeholder = "お名前" | |
nameField.borderStyle = .roundedRect | |
nameField.snp.makeConstraints { make in | |
make.top.equalTo(stackView.snp.bottom).offset(8) | |
make.left.equalTo(8) | |
make.right.equalTo(-8) | |
} | |
} | |
required init?(coder aDecoder: NSCoder) { | |
fatalError("init(coder:) has not been implemented") | |
} | |
} | |
final class ManageViewController: UIViewController { | |
private lazy var container = ManageView() | |
let disposeBag = DisposeBag() | |
override func viewDidLoad() { | |
super.viewDidLoad() | |
navigationItem.title = "Nav2" | |
view = container | |
} | |
override func didReceiveMemoryWarning() { | |
super.didReceiveMemoryWarning() | |
// Dispose of any resources that can be recreated. | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment