// ViewController.swift
// collectionViewPractice
//
// Created by agile-10 on 21/07/17.
// Copyright © 2017 agile. All rights reserved.
//
import UIKit
class ViewController: UIViewController,UITableViewDelegate,UITableViewDataSource{
@IBOutlet var tblView: UITableView!
override func viewDidLoad() {
super.viewDidLoad()
self.tblView.register(UINib(nibName: "TableViewCell", bundle: nil), forCellReuseIdentifier: "cell")
self.tblView.rowHeight = UITableViewAutomaticDimension
self.tblView.estimatedRowHeight = 165
// Do any additional setup after loading the view, typically from a nib.
}
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return 250.0
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int
{
return 10
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
{
let cell : TableViewCell = tableView.dequeueReusableCell(withIdentifier: "cell") as! TableViewCell
return cell
}
func numberOfSections(in tableView: UITableView) -> Int // Default is 1 if not implemented
{
return 1
}
}
// TableViewCell.swift
// collectionViewPractice
import UIKit
class TableViewCell: UITableViewCell,UICollectionViewDelegate,UICollectionViewDataSource,UICollectionViewDelegateFlowLayout{
@IBOutlet var clview: UICollectionView!
override func awakeFromNib() {
super.awakeFromNib()
self.clview.register(UINib(nibName: "CollectionViewCell", bundle: nil), forCellWithReuseIdentifier: "cell1")
clview.delegate = self as UICollectionViewDelegate
clview.dataSource = self as UICollectionViewDataSource
// Initialization code
}
override func setSelected(_ selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
// Configure the view for the selected state
}
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int
{
return 10
}
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell
{
let cell1 : CollectionViewCell = collectionView.dequeueReusableCell(withReuseIdentifier: "cell1", for: indexPath) as! CollectionViewCell
cell1.clView.backgroundColor = getRandomColor()
return cell1
}
func numberOfSections(in collectionView: UICollectionView) -> Int
{
return 1
}
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize
{
let screen = UIScreen.main.bounds
let width = (screen.width - 30)/4
return CGSize(width: width, height: 130)
}
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat
{
return 10
}
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAt section: Int) -> CGFloat
{
return 10
}
func getRandomColor() -> UIColor{
//Generate between 0 to 1
let red:CGFloat = CGFloat(drand48())
let green:CGFloat = CGFloat(drand48())
let blue:CGFloat = CGFloat(drand48())
return UIColor(red:red, green: green, blue: blue, alpha: 1.0)
}
}
// CollectionViewCell.swift
// collectionViewPractice
import UIKit
class CollectionViewCell: UICollectionViewCell {
@IBOutlet var clView: UIView!
override func awakeFromNib() {
super.awakeFromNib()
// Initialization code
}
}
Comments
Post a Comment