Skip to content

Instantly share code, notes, and snippets.

@fromkk
Created June 23, 2020 12:22
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save fromkk/3e9fbba5b7d95cdfb2dc80747aed879f to your computer and use it in GitHub Desktop.
Save fromkk/3e9fbba5b7d95cdfb2dc80747aed879f to your computer and use it in GitHub Desktop.
//
// ViewController.swift
// TableViewInvalidSample
//
// Created by Kazuya Ueoka on 2020/06/23.
// Copyright © 2020 fromKK. All rights reserved.
//
import UIKit
final class Cell: UICollectionViewCell {
override init(frame: CGRect) {
super.init(frame: frame)
setUp()
}
required init?(coder: NSCoder) {
super.init(coder: coder)
setUp()
}
private lazy var setUp: () -> Void = {
textLabel.translatesAutoresizingMaskIntoConstraints = false
contentView.addSubview(textLabel)
NSLayoutConstraint.activate([
textLabel.leadingAnchor.constraint(equalTo: contentView.leadingAnchor, constant: 16),
textLabel.topAnchor.constraint(equalTo: contentView.topAnchor, constant: 16),
contentView.trailingAnchor.constraint(equalTo: textLabel.trailingAnchor, constant: 16),
contentView.bottomAnchor.constraint(equalTo: textLabel.bottomAnchor, constant: 16)
])
return {}
}()
lazy var textLabel: UILabel = {
let label = UILabel()
label.font = UIFont.systemFont(ofSize: 16)
label.textColor = .black
return label
}()
}
class ViewController: UIViewController, UICollectionViewDataSource, UICollectionViewDelegate, UICollectionViewDelegateFlowLayout {
override func viewDidLoad() {
super.viewDidLoad()
collectionView.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(collectionView)
NSLayoutConstraint.activate([
collectionView.leadingAnchor.constraint(equalTo: view.leadingAnchor),
collectionView.topAnchor.constraint(equalTo: view.topAnchor),
view.trailingAnchor.constraint(equalTo: collectionView.trailingAnchor),
view.bottomAnchor.constraint(equalTo: collectionView.bottomAnchor)
])
}
private lazy var layout: UICollectionViewFlowLayout = {
let layout = UICollectionViewFlowLayout()
layout.minimumLineSpacing = 0
layout.minimumInteritemSpacing = 0
layout.scrollDirection = .vertical
return layout
}()
lazy var collectionView: UICollectionView = {
let collectionView = UICollectionView(frame: view.bounds, collectionViewLayout: layout)
collectionView.backgroundColor = .white
collectionView.register(Cell.self, forCellWithReuseIdentifier: "Cell")
collectionView.dataSource = self
collectionView.delegate = self
return collectionView
}()
func numberOfSections(in collectionView: UICollectionView) -> Int {
return 3
}
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return 1
}
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "Cell", for: indexPath) as! Cell
cell.textLabel.text = String(format: "%d - %d", indexPath.section, indexPath.item)
return cell
}
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
switch indexPath.section {
// case 1:
// return .zero
default:
return CGSize(width: collectionView.bounds.size.width, height: 60)
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment