Skip to content

Instantly share code, notes, and snippets.

@ShoMasegi
ShoMasegi / SplashViewControlle_init.swift
Last active September 11, 2018 07:44
hatena_WithoutStoryboard_viewcontroller_init
class SplashViewController: UIViewController {
init() {
super.init(nibName: nil, bundle: nil)
}
required init?(coder _: NSCoder) { fatalError() }
}
@ShoMasegi
ShoMasegi / SplashViewController_layout.swift
Created September 11, 2018 07:45
hatena_WithoutStoryboard_viewcontroller_llayout
class SplashViewController: UIViewController {
...
override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = .white
setupSubviews()
}
private lazy var label: UILabel = {
let label = UILabel()
@ShoMasegi
ShoMasegi / push.swift
Created September 11, 2018 07:48
hatena_WithoutStoryboard_push
self.navigationController?.pushViewController(viewController, animated: true)
@ShoMasegi
ShoMasegi / present.swift
Created September 11, 2018 07:49
hatena_WithoutStoryboard_present
self.navigationController?.present(viewController, animated: true)
@ShoMasegi
ShoMasegi / TableView_init.swift
Created September 11, 2018 07:52
hatena_WithoutStoryboard_TableView_init
class EventsViewController: UIViewController {
...
private lazy var tableView: UITableView = {
let tableView = UITableView()
tableView.estimatedRowHeight = 50
tableView.rowHeight = UITableViewAutomaticDimension
tableView.backgroundColor = .white
tableView.separatorInset = UIEdgeInsets(top: 0, left: 24, bottom: 0, right: 0)
tableView.separatorColor = .lightGray
talbeView.dataSource = self
@ShoMasegi
ShoMasegi / EventTableViewCell_init.swift
Created September 11, 2018 07:57
hatena_WithoutStoryboard_tableviewcell
class EventTableViewCell: UITableViewCell, Reusable {
....
override init(style: UITableViewCellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
setupSubviews()
}
required init?(coder aDecoder: NSCoder) { fatalError() }
....
}
@ShoMasegi
ShoMasegi / EventTableViewCell_layout.swift
Created September 11, 2018 07:58
hatena_WithoutStoryboard_tableviewcell_layout
class EventTableViewCell: UITableViewCell, Reusable {
....
override func layoutSubviews() {
super.layoutSubviews()
contentView.layoutIfNeeded()
iconImageView.layer.cornerRadius = iconImageView.frame.height / 2
}
private lazy var iconImageView: UIImageView = {
let imageView = UIImageView()
@ShoMasegi
ShoMasegi / Reusable.swift
Created September 11, 2018 08:07
hatena_uitableview_reuse
protocol Reusable: class {
static var reuseIdentifier: String { get }
}
extension Reusable where Self: UIView {
static var reuseIdentifier: String {
return String(describing: self)
}
}
@ShoMasegi
ShoMasegi / UITableView+Extension.swift
Created September 11, 2018 08:07
hatena_uitalbeview_register
extension UITableView {
func register<T: UITableViewCell>(_: T.Type) where T: Reusable {
register(T.self, forCellReuseIdentifier: T.reuseIdentifier)
}
func dequeueReusableCell<T: UITableViewCell>(for indexPath: IndexPath) -> T where T: Reusable {
guard let cell = dequeueReusableCell(withIdentifier: T.reuseIdentifier, for: indexPath) as? T else {
fatalError("Could not dequeue cell with identifier: \(T.reuseIdentifier)")
}
return cell
render() {
return (
<View style={styles.container}>
<FlatList
style={styles.flatList}
data={_rows}
renderItem={this._renderItem}
keyExtractor={_extractKey}
/>
</View>