Advertisement
Guest User

Untitled

a guest
May 31st, 2025
42
0
2 days
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Swift 2.00 KB | Source Code | 0 0
  1.  
  2. // my swiftui code
  3. import SwiftUI
  4.  
  5. struct ContentView: View {
  6.     var body: some View {
  7.         VStack(spacing: 16) {
  8.             Rectangle()
  9.                 .fill(Color.blue)
  10.                 .frame(height: 150)
  11.  
  12.             Rectangle()
  13.                 .fill(Color.green)
  14.                 .frame(height: 100)
  15.  
  16.             HStack(spacing: 20) {
  17.                 Button("Minimize") {
  18.                     // trigger minimize
  19.                 }
  20.                 .frame(width: 120, height: 44)
  21.  
  22.                 Button("Maximize") {
  23.                     // trigger maximize
  24.                 }
  25.                 .frame(width: 120, height: 44)
  26.             }
  27.         }
  28.         .padding()
  29.     }
  30. }
  31.  
  32. //my uikit code
  33.  
  34. import UIKit
  35. import SwiftUI
  36. class HostingContainerViewController: UIViewController {
  37.     let containerView = UIView()
  38.     var initialFrame: CGRect = .zero    // ← set externally via Representable
  39.     var expandedFrame: CGRect = .zero   // ← set externally via Representable
  40.     override func viewDidLoad() {
  41.         super.viewDidLoad()
  42.         setupContainerView()
  43.         embedSwiftUIView()
  44.     }
  45.     private func setupContainerView() {
  46.         containerView.backgroundColor = .clear
  47.         containerView.frame = initialFrame // ← Start with initial (minimized) frame
  48.         view.addSubview(containerView)
  49.     }
  50.     private func embedSwiftUIView() {
  51.         let contentView = ContentView() // Your SwiftUI view
  52.         let hostingController = UIHostingController(rootView: contentView)
  53.         addChild(hostingController)
  54.         hostingController.view.frame = containerView.bounds
  55.         containerView.addSubview(hostingController.view)
  56.         hostingController.didMove(toParent: self)
  57.     }
  58.     func minimize() {
  59.         UIView.animate(withDuration: 0.3) {
  60.             self.containerView.frame = self.initialFrame
  61.         }
  62.     }
  63.     func maximize() {
  64.         UIView.animate(withDuration: 0.3) {
  65.             self.containerView.frame = self.expandedFrame
  66.         }
  67.     }
  68. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement