I want to open a segue, but only on a half screen, the rest I want to be an ImageView, I tried searching up segue padding, but couldn't find what I was looking for, In figma, I've added an IOS extension, where I got an asset( picture below ), what I see on picture is a view opened on half screen, is there any other way beside UIView
to achive my end result?
CodePudding user response:
For half view controller we have to set height and width.
HalfViewController.swift
import Foundation
import UIKit
class HalfSizePresentationController: UIPresentationController {
override var frameOfPresentedViewInContainerView: CGRect {
guard let bounds = containerView?.bounds else { return .zero }
return CGRect(x: 0, y: bounds.height / 2, width: bounds.width, height: bounds.height / 2)
}
}
Now call HalfViewController.swift in view controller
@IBAction func addGoalButton(_ sender: Any) {
movetoAddgaolModal()
}
func movetoAddgaolModal(){
let storyboard = UIStoryboard(name: "Stopwatch", bundle: nil)
let pvc = storyboard.instantiateViewController(withIdentifier: "TimersetViewController") as! TimersetViewController
pvc.modalPresentationStyle = .custom
pvc.transitioningDelegate = self
present(pvc, animated: true)
}
func presentationController(forPresented presented: UIViewController, presenting: UIViewController?, source: UIViewController) -> UIPresentationController? {
return HalfSizePresentationController(presentedViewController: presented, presenting: presentingViewController)
}
CodePudding user response:
I'm always using this pod FittedSheets
let storyboard = UIStoryboard(name: "Order", bundle: nil)
let vc = storyboard.instantiateViewController(withIdentifier: "PaymentTypeVC") as! PaymentTypeVC
let sheetVC = Utils.createSheetController(vc: vc, sizes: [.fixed(320)])
sheetVC.modalPresentationStyle = .overFullScreen
present(sheetVC, animated: true, completion: nil)