114 lines
3.3 KiB
Swift
114 lines
3.3 KiB
Swift
//
|
|
// StackedProfileViewController.swift
|
|
// PanModal
|
|
//
|
|
// Created by Tosin Afolabi on 2/26/19.
|
|
// Copyright © 2019 PanModal. All rights reserved.
|
|
//
|
|
|
|
import UIKit
|
|
|
|
class StackedProfileViewController: UIViewController, PanModalPresentable {
|
|
|
|
// MARK: - Properties
|
|
|
|
let presentable: UserGroupMemberPresentable
|
|
|
|
override var preferredStatusBarStyle: UIStatusBarStyle {
|
|
return .lightContent
|
|
}
|
|
|
|
// MARK: - Views
|
|
|
|
let avatarView: UIView = {
|
|
let view = UIView()
|
|
view.layer.cornerRadius = 6.0
|
|
view.translatesAutoresizingMaskIntoConstraints = false
|
|
return view
|
|
}()
|
|
|
|
let nameLabel: UILabel = {
|
|
let label = UILabel()
|
|
label.textColor = #colorLiteral(red: 0.8196078431, green: 0.8235294118, blue: 0.8274509804, alpha: 1)
|
|
label.font = UIFont(name: "Lato-Bold", size: 20.0)
|
|
label.backgroundColor = .clear
|
|
label.translatesAutoresizingMaskIntoConstraints = false
|
|
return label
|
|
}()
|
|
|
|
let roleLabel: UILabel = {
|
|
let label = UILabel()
|
|
label.textColor = #colorLiteral(red: 0.7019607843, green: 0.7058823529, blue: 0.7137254902, alpha: 1)
|
|
label.backgroundColor = .clear
|
|
label.font = UIFont(name: "Lato-Regular", size: 15.0)
|
|
label.translatesAutoresizingMaskIntoConstraints = false
|
|
return label
|
|
}()
|
|
|
|
// MARK: - Initializers
|
|
|
|
init(presentable: UserGroupMemberPresentable) {
|
|
self.presentable = presentable
|
|
super.init(nibName: nil, bundle: nil)
|
|
}
|
|
|
|
required init?(coder aDecoder: NSCoder) {
|
|
fatalError("init(coder:) has not been implemented")
|
|
}
|
|
|
|
// MARK: - View Lifecycle
|
|
|
|
override func viewDidLoad() {
|
|
super.viewDidLoad()
|
|
|
|
title = "Profile"
|
|
view.backgroundColor = #colorLiteral(red: 0.1019607843, green: 0.1137254902, blue: 0.1294117647, alpha: 1)
|
|
|
|
view.addSubview(avatarView)
|
|
view.addSubview(nameLabel)
|
|
view.addSubview(roleLabel)
|
|
|
|
nameLabel.text = presentable.name
|
|
roleLabel.text = presentable.role
|
|
avatarView.backgroundColor = presentable.avatarBackgroundColor
|
|
|
|
setupConstraints()
|
|
}
|
|
|
|
// MARK: - Layoutt
|
|
|
|
func setupConstraints() {
|
|
|
|
avatarView.widthAnchor.constraint(equalToConstant: 200.0).isActive = true
|
|
avatarView.heightAnchor.constraint(equalToConstant: 200.0).isActive = true
|
|
avatarView.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true
|
|
avatarView.topAnchor.constraint(equalTo: view.topAnchor, constant: 25.0).isActive = true
|
|
|
|
nameLabel.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true
|
|
nameLabel.topAnchor.constraint(equalTo: avatarView.bottomAnchor, constant: 20.0).isActive = true
|
|
|
|
roleLabel.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true
|
|
roleLabel.topAnchor.constraint(equalTo: nameLabel.bottomAnchor, constant: 4.0).isActive = true
|
|
bottomLayoutGuide.topAnchor.constraint(greaterThanOrEqualTo: roleLabel.bottomAnchor).isActive = true
|
|
}
|
|
|
|
// MARK: - Pan Modal Presentable
|
|
|
|
var panScrollable: UIScrollView? {
|
|
return nil
|
|
}
|
|
|
|
var longFormHeight: PanModalHeight {
|
|
return .intrinsicHeight
|
|
}
|
|
|
|
var anchorModalToLongForm: Bool {
|
|
return false
|
|
}
|
|
|
|
var shouldRoundTopCorners: Bool {
|
|
return true
|
|
}
|
|
|
|
}
|