Skip to content

Instantly share code, notes, and snippets.

View vialyx's full-sized avatar
🎯
Focusing

Maxim Vialyx vialyx

🎯
Focusing
View GitHub Profile
protocol TaskListModelOutput: class {
func didUpdate(task: TaskDataType)
}
import Foundation
final class TaskListModel: TaskListModelInput {
weak var output: TaskListModelOutput!
var card: CardDataModel!
init() {
card = CardDataModel.mock(option: 0)
protocol TaskListViewControllerInput: ImagePickerOutput, LinkHandlerType {
func startTask()
func doLaterTask()
func didSelect(task: TaskDataType)
}
import UIKit
final class TaskListViewController: UIViewController, InfoPresenterProtocol, ActivityIndicatorProtocol {
@IBOutlet weak var collectionView: UICollectionView!
var model: TaskListModelInput!
var imagePicker: ImagePickerInput!
private var collectionDataSource: TaskListCollectionViewDataSource!
private var selectedTask: TaskDataType?
import UIKit
final class TaskListModuleConfigurator {
func configureModuleForViewInput<UIViewController>(viewInput: UIViewController) {
if let viewController = viewInput as? TaskListViewController {
configure(viewController: viewController)
}
}
import UIKit
final class TaskListModuleInitializer: NSObject {
@IBOutlet weak var viewController: TaskListViewController!
override func awakeFromNib() {
let configurator = TaskListModuleConfigurator()
configurator.configureModuleForViewInput(viewInput: viewController)
}
//: A UIKit based Playground for presenting user interface
import UIKit
import PlaygroundSupport
final class MyViewController: UIViewController {
override func loadView() {
let view = UIView()
view.backgroundColor = .white
final class InteractiveModalTransitioningDelegate: NSObject, UIViewControllerTransitioningDelegate {
var interactiveDismiss = true
init(from presented: UIViewController, to presenting: UIViewController) {
super.init()
}
// MARK: - UIViewControllerTransitioningDelegate
func animationController(forDismissed dismissed: UIViewController) -> UIViewControllerAnimatedTransitioning? {
final class MyViewController: UIViewController {
private var detailsTransitioningDelegate: InteractiveModalTransitioningDelegate!
/*
Some code
*/
@objc
private func labelDidTap() {
enum ModalScaleState {
case presentation
case interaction
}
final class InteractiveModalPresentationController: UIPresentationController {
private let presentedYOffset: CGFloat = 150
private var direction: CGFloat = 0
private var state: ModalScaleState = .interaction