Skip to content

Instantly share code, notes, and snippets.

@starhoshi
Created February 4, 2017 15:05
Show Gist options
  • Save starhoshi/3c62096ed5e39ada765ea0e81ac903f6 to your computer and use it in GitHub Desktop.
Save starhoshi/3c62096ed5e39ada765ea0e81ac903f6 to your computer and use it in GitHub Desktop.
SnapKit で画面を作ってみる遊び
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