update split class

This commit is contained in:
mrustaa
2020-06-11 16:06:12 +03:00
parent 9449d4d9d6
commit 87b208dc1b
10 changed files with 380 additions and 302 deletions
@@ -7,10 +7,10 @@
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<scenes>
<!--Examples Add Table View Controller-->
<!--Example Add Table View Controller-->
<scene sceneID="0f9-5i-ygC">
<objects>
<viewController storyboardIdentifier="ExamplesAddTableViewController" useStoryboardIdentifierAsRestorationIdentifier="YES" id="p3c-kf-PfN" customClass="ExamplesAddTableViewController" customModule="ContainerControllerSwift_Example" customModuleProvider="target" sceneMemberID="viewController">
<viewController storyboardIdentifier="ExampleAddTableViewController" useStoryboardIdentifierAsRestorationIdentifier="YES" id="p3c-kf-PfN" customClass="ExampleAddTableViewController" customModule="ContainerController" customModuleProvider="target" sceneMemberID="viewController">
<view key="view" contentMode="scaleToFill" id="jmi-Lo-St4">
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
@@ -0,0 +1,92 @@
//
// ExampleAddTableViewController.swift
// ContainerControllerSwift
//
// Created by mrustaa on 09.06.2020.
// Copyright © 2020 mrustaa. All rights reserved.
//
import UIKit
import ContainerControllerSwift
class ExampleAddTableViewController: StoryboardController {
var container: ContainerController!
// MARK: - Init
override func viewDidLoad() {
super.viewDidLoad()
let layout = ContainerLayout()
layout.backgroundShadowShow = true
layout.positions = ContainerPosition(top: 70, middle: 250, bottom: 100)
container = ContainerController(addTo: self, layout: layout)
container.view.cornerRadius = 15
container.view.addShadow()
container.add(scrollView: addTableView())
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
container.move(type: .top)
}
func addTableView() -> UITableView {
let tableView = UITableView()
tableView.register(UITableViewCell.self, forCellReuseIdentifier: "cell")
tableView.delegate = self
tableView.dataSource = self
return tableView
}
}
// MARK: - Scroll Delegate
extension ExampleAddTableViewController: UIScrollViewDelegate {
func scrollViewDidScroll(_ scrollView: UIScrollView) {
container.scrollViewDidScroll(scrollView)
}
func scrollViewWillBeginDragging(_ scrollView: UIScrollView) {
container.scrollViewWillBeginDragging(scrollView)
}
func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
container.scrollViewDidEndDecelerating(scrollView)
}
func scrollViewDidEndDragging(_ scrollView: UIScrollView, willDecelerate decelerate: Bool) {
container.scrollViewDidEndDragging(scrollView, willDecelerate: decelerate)
}
}
// MARK: - Table Delegate
extension ExampleAddTableViewController: UITableViewDelegate {
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return 60
}
}
// MARK: - Table DataSource
extension ExampleAddTableViewController: UITableViewDataSource {
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 21
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
cell.textLabel?.text = "item \(indexPath.row)"
cell.backgroundColor = .clear
return cell
}
}
@@ -0,0 +1,92 @@
//
// ExampleAddTableViewControllerSettings.swift
// ContainerControllerSwift
//
// Created by mrustaa on 09.06.2020.
// Copyright © 2020 mrustaa. All rights reserved.
//
import UIKit
import ContainerControllerSwift
extension ExampleAddTableViewController {
// MARK: - Settings
func changeViewParametrs() {
container.view.cornerRadius = 15 // Change cornerRadius global
container.view.addShadow(opacity: 0.1) // Add layer shadow
container.view.addBlur(style: .dark) // Add background blur UIVisualEffectView
}
func changeViewCustom() {
// Add custom shadow
let layer = container.view.layer
layer.shadowOpacity = 0.5
layer.shadowColor = UIColor.red.cgColor
layer.shadowOffset = CGSize(width: 1, height: 4)
layer.shadowRadius = 5
// Add view in container.view
let viewRed = UIView(frame: CGRect(x: 50, y: 50, width: 50, height: 50))
viewRed.backgroundColor = .systemRed
container.view.addSubview(viewRed)
// Add view under scrollView container.view
let viewGreen = UIView(frame: CGRect(x: 25, y: 25, width: 50, height: 50))
viewGreen.backgroundColor = .systemGreen
container.view.insertSubview(viewGreen, at: 0)
}
func createLayout() {
let layout = ContainerLayout()
layout.startPosition = .hide
layout.backgroundShadowShow = false
layout.positions = ContainerPosition(top: 70, middle: 250, bottom: 70)
}
// MARK: - Change settings right away
func changeRightAway() {
// Properties
container.set(movingEnabled: true)
container.set(trackingPosition: false)
container.set(footerPadding: 100)
// Add ScrollInsets Top/Bottom
container.set(scrollIndicatorTop: 5) //
container.set(scrollIndicatorBottom: 5) //
// Positions
container.set(top: 70) //
container.set(middle: 250) //
container.set(bottom: 80) //
// Middle Enable/Disable
container.set(middle: 250)
container.set(middle: nil)
// Background Shadow
container.set(backgroundShadowShow: true)
// Insets View
container.set(left: 5) //
container.set(right: 5) //
// Landscape params
container.setLandscape(top: 30)
container.setLandscape(middle: 150)
container.setLandscape(bottom: 70)
container.setLandscape(middle: nil)
container.setLandscape(backgroundShadowShow: false)
container.setLandscape(left: 10)
container.setLandscape(right: 100)
}
}
@@ -1,269 +0,0 @@
//
// ExamplesAddTableViewController.swift
// ContainerControllerSwift
//
// Created by mrustaa on 09.06.2020.
// Copyright © 2020 mrustaa. All rights reserved.
//
import UIKit
import ContainerControllerSwift
class ExamplesAddTableViewController: StoryboardController {
var containerTable: ContainerController!
var containerCollection: ContainerController!
override func viewDidLoad() {
super.viewDidLoad()
let layout = ContainerLayout()
layout.backgroundShadowShow = true
layout.positions = ContainerPosition(top: 70, middle: 250, bottom: 100)
containerTable = ContainerController(addTo: self, layout: layout)
containerTable.view.cornerRadius = 15
containerTable.view.addShadow()
containerTable.add(scrollView: addTableView())
let layoutC = ContainerLayout()
layoutC.positions = ContainerPosition(top: 100, middle: 250, bottom: 70)
containerCollection = ContainerController(addTo: self, layout: layoutC)
containerCollection.view.cornerRadius = 15
containerCollection.view.addShadow()
containerCollection.add(scrollView: addCollectionView())
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
containerTable.move(type: .top, completion: { [weak self] in
guard let _self = self else { return }
_self.containerCollection.move(type: .middle)
})
}
func addTableView() -> UITableView {
let tableView = UITableView()
tableView.register(UITableViewCell.self, forCellReuseIdentifier: "cell")
tableView.delegate = self
tableView.dataSource = self
return tableView
}
func addCollectionView() -> UICollectionView {
let layout = UICollectionViewFlowLayout()
let padding: CGFloat = 15
layout.sectionInset = UIEdgeInsets(top: padding, left: padding, bottom: padding, right: padding)
layout.minimumLineSpacing = padding
layout.minimumInteritemSpacing = padding
let colletion = UICollectionView(frame: CGRect.zero, collectionViewLayout: layout)
colletion.register(UICollectionViewCell.self, forCellWithReuseIdentifier: "cell")
colletion.backgroundColor = .clear
colletion.delegate = self
colletion.dataSource = self
return colletion
}
func changeViewParametrs() {
containerTable.view.cornerRadius = 15 // Change cornerRadius global
containerTable.view.addShadow(opacity: 0.1) // Add layer shadow
containerTable.view.addBlur(style: .dark) // Add background blur UIVisualEffectView
}
func changeViewCustom() {
// Add custom shadow
let layer = containerTable.view.layer
layer.shadowOpacity = 0.5
layer.shadowColor = UIColor.red.cgColor
layer.shadowOffset = CGSize(width: 1, height: 4)
layer.shadowRadius = 5
// Add view in container.view
let viewRed = UIView(frame: CGRect(x: 50, y: 50, width: 50, height: 50))
viewRed.backgroundColor = .systemRed
containerTable.view.addSubview(viewRed)
// Add view under scrollView container.view
let viewGreen = UIView(frame: CGRect(x: 25, y: 25, width: 50, height: 50))
viewGreen.backgroundColor = .systemGreen
containerTable.view.insertSubview(viewGreen, at: 0)
}
// MARK: - Settings
func createLayout() {
let layout = ContainerLayout()
layout.startPosition = .hide
layout.backgroundShadowShow = false
layout.positions = ContainerPosition(top: 70, middle: 250, bottom: 70)
}
// MARK: - change settings right away
func changeRightAway() {
// Properties
containerTable.set(movingEnabled: true)
containerTable.set(trackingPosition: false)
containerTable.set(footerPadding: 100)
// Add ScrollInsets Top/Bottom
containerTable.set(scrollIndicatorTop: 5) //
containerTable.set(scrollIndicatorBottom: 5) //
// Positions
containerTable.set(top: 70) //
containerTable.set(middle: 250) //
containerTable.set(bottom: 80) //
// Middle Enable/Disable
containerTable.set(middle: 250)
containerTable.set(middle: nil)
// Background Shadow
containerTable.set(backgroundShadowShow: true)
// Insets View
containerTable.set(left: 5) //
containerTable.set(right: 5) //
// Landscape params
containerTable.setLandscape(top: 30)
containerTable.setLandscape(middle: 150)
containerTable.setLandscape(bottom: 70)
containerTable.setLandscape(middle: nil)
containerTable.setLandscape(backgroundShadowShow: false)
containerTable.setLandscape(left: 10)
containerTable.setLandscape(right: 100)
}
}
// MARK: - Scroll Delegate
extension ExamplesAddTableViewController: UIScrollViewDelegate {
func scrollViewDidScroll(_ scrollView: UIScrollView) {
if let table = scrollView as? UITableView {
containerTable.scrollViewDidScroll(table)
}
if let colletion = scrollView as? UICollectionView {
containerCollection.scrollViewDidScroll(colletion)
}
}
func scrollViewWillBeginDragging(_ scrollView: UIScrollView) {
if let table = scrollView as? UITableView {
containerTable.scrollViewWillBeginDragging(table)
}
if let colletion = scrollView as? UICollectionView {
containerCollection.scrollViewWillBeginDragging(colletion)
}
}
func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
if let table = scrollView as? UITableView {
containerTable.scrollViewDidEndDecelerating(table)
}
if let colletion = scrollView as? UICollectionView {
containerCollection.scrollViewDidEndDecelerating(colletion)
}
}
func scrollViewDidEndDragging(_ scrollView: UIScrollView, willDecelerate decelerate: Bool) {
if let table = scrollView as? UITableView {
containerTable.scrollViewDidEndDragging(table, willDecelerate: decelerate)
}
if let colletion = scrollView as? UICollectionView {
containerCollection.scrollViewDidEndDragging(colletion, willDecelerate: decelerate)
}
}
}
// MARK: - Collection DataSource
extension ExamplesAddTableViewController: UICollectionViewDataSource {
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return 17
}
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cell", for: indexPath)
let randomInt = Int.random(in: 0..<6)
var color: UIColor = .systemBlue
switch randomInt {
case 0: color = .systemBlue
case 1: color = .systemRed
case 2: color = .systemGray
case 3: color = .systemGreen
case 4: color = .systemYellow
case 5: color = .systemOrange
default: break
}
cell.backgroundColor = color
cell.layer.cornerRadius = 12
return cell
}
}
// MARK: - Collection Layout
extension ExamplesAddTableViewController: UICollectionViewDelegateFlowLayout {
public func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
let size = ((ContainerDevice.width / 2) - 1) - 22
return CGSize(width: size, height: size)
}
}
// MARK: - Table Delegate
extension ExamplesAddTableViewController: UITableViewDelegate {
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return 60
}
}
// MARK: - Table DataSource
extension ExamplesAddTableViewController: UITableViewDataSource {
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 21
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
cell.textLabel?.text = "item \(indexPath.row)"
cell.backgroundColor = .clear
return cell
}
}