123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195 |
- import Foundation
- import Parchment
- class NCShare: UIViewController {
-
- private let pagingViewController = NCShareHeaderViewController()
-
- @objc var metadata: tableMetadata?
- @objc var shareLink: String = ""
- @objc var shareUserAndGroup: String = ""
- override func viewDidLoad() {
- super.viewDidLoad()
-
-
- if FileManager.default.fileExists(atPath: CCUtility.getDirectoryProviderStorageIconFileID(metadata!.fileID, fileNameView: metadata!.fileNameView)) {
- pagingViewController.image = UIImage.init(contentsOfFile: CCUtility.getDirectoryProviderStorageIconFileID(metadata!.fileID, fileNameView: metadata!.fileNameView))
- } else {
- if metadata!.iconName.count > 0 {
- pagingViewController.image = UIImage.init(named: metadata!.iconName)
- } else if metadata!.directory {
- let image = UIImage.init(named: "folder")!
- pagingViewController.image = CCGraphics.changeThemingColorImage(image, width: image.size.width*2, height: image.size.height*2, color: NCBrandColor.sharedInstance.brandElement)
- } else {
- pagingViewController.image = UIImage.init(named: "file")
- }
- }
-
-
- var image = CCGraphics.changeThemingColorImage(UIImage(named: "exit")!, width: 40, height: 40, color: UIColor.gray)
- image = image?.withRenderingMode(.alwaysOriginal)
- self.navigationItem.rightBarButtonItem = UIBarButtonItem(image: image, style:.plain, target: self, action: #selector(exitTapped))
-
- addChild(pagingViewController)
- view.addSubview(pagingViewController.view)
- pagingViewController.didMove(toParent: self)
-
- pagingViewController.selectedTextColor = .black
- pagingViewController.indicatorColor = .black
- pagingViewController.indicatorOptions = .visible(
- height: 1,
- zIndex: Int.max,
- spacing: .zero,
- insets: .zero
- )
-
-
- pagingViewController.view.translatesAutoresizingMaskIntoConstraints = false
- NSLayoutConstraint.activate([
- pagingViewController.view.topAnchor.constraint(equalTo: view.topAnchor),
- pagingViewController.view.bottomAnchor.constraint(equalTo: view.bottomAnchor),
- pagingViewController.view.leadingAnchor.constraint(equalTo: view.leadingAnchor),
- pagingViewController.view.trailingAnchor.constraint(equalTo: view.trailingAnchor),
- ])
-
-
- pagingViewController.dataSource = self
- }
-
- @objc func exitTapped() {
- self.dismiss(animated: true, completion: nil)
- }
- }
- extension NCShare: PagingViewControllerDataSource {
-
- func pagingViewController<T>(_ pagingViewController: PagingViewController<T>, viewControllerForIndex index: Int) -> UIViewController {
-
- var viewController: UIViewController?
- let storyboard = UIStoryboard(name: "NCShare", bundle: nil)
- switch index {
- case 0:
- viewController = storyboard.instantiateViewController(withIdentifier: "activity")
- case 1:
- viewController = storyboard.instantiateViewController(withIdentifier: "comments")
- case 2:
- viewController = storyboard.instantiateViewController(withIdentifier: "sharing")
- default:
- print("")
- }
- return viewController!
- }
-
- func pagingViewController<T>(_ pagingViewController: PagingViewController<T>, pagingItemForIndex index: Int) -> T {
- switch index {
- case 0:
- return PagingIndexItem(index: index, title: "activity") as! T
- case 1:
- return PagingIndexItem(index: index, title: "comments") as! T
- case 2:
- return PagingIndexItem(index: index, title: "sharing") as! T
- default:
- return PagingIndexItem(index: index, title: "") as! T
- }
- }
-
- func numberOfViewControllers<T>(in: PagingViewController<T>) -> Int{
- return 3
- }
- }
- class NCShareHeaderViewController: PagingViewController<PagingIndexItem> {
-
- public var image: UIImage?
-
- override func loadView() {
- view = NCShareHeader(
- options: options,
- collectionView: collectionView,
- pageView: pageViewController.view,
- image: image
- )
- }
- }
- class NCShareHeader: PagingView {
-
- static let HeaderHeight: CGFloat = 200
- var image: UIImage?
-
- var headerHeightConstraint: NSLayoutConstraint?
-
- private lazy var headerView: UIImageView = {
- let view = UIImageView(image: self.image!)
- view.contentMode = .scaleAspectFit
- view.clipsToBounds = true
- return view
- }()
-
- public init(options: Parchment.PagingOptions, collectionView: UICollectionView, pageView: UIView, image: UIImage?) {
- super.init(options: options, collectionView: collectionView, pageView: pageView)
-
- self.image = image
- }
-
- required init?(coder: NSCoder) {
- fatalError("init(coder:) has not been implemented")
- }
-
- override func setupConstraints() {
-
- addSubview(headerView)
-
- pageView.translatesAutoresizingMaskIntoConstraints = false
- collectionView.translatesAutoresizingMaskIntoConstraints = false
- headerView.translatesAutoresizingMaskIntoConstraints = false
-
- headerHeightConstraint = headerView.heightAnchor.constraint(
- equalToConstant: NCShareHeader.HeaderHeight
- )
- headerHeightConstraint?.isActive = true
-
- NSLayoutConstraint.activate([
- collectionView.leadingAnchor.constraint(equalTo: leadingAnchor),
- collectionView.trailingAnchor.constraint(equalTo: trailingAnchor),
- collectionView.heightAnchor.constraint(equalToConstant: options.menuHeight),
- collectionView.topAnchor.constraint(equalTo: headerView.bottomAnchor),
-
- headerView.topAnchor.constraint(equalTo: topAnchor),
- headerView.leadingAnchor.constraint(equalTo: leadingAnchor),
- headerView.trailingAnchor.constraint(equalTo: trailingAnchor),
-
- pageView.leadingAnchor.constraint(equalTo: leadingAnchor),
- pageView.trailingAnchor.constraint(equalTo: trailingAnchor),
- pageView.bottomAnchor.constraint(equalTo: bottomAnchor),
- pageView.topAnchor.constraint(equalTo: topAnchor)
- ])
- }
- }
|