UIKit의 ViewController에서 SwiftUI의 View 호출
장면 작업
기본 프로젝트는 UIKit에서 수행되며, 일부만 SwiftUI를 사용하려는 경우
그림 완성
SwiftUI로 제작된 부품을 UIKit 측면에서 호출하여 표시
버튼을 클릭하면 버튼 텍스트를 변경할 수 있습니다
프로젝트 작성
유키로 만들기.
SwiftUI로 부품 만들기
import SwiftUI
struct ButtonView: View {
@State var buttonText = "SwiftUIのView"
var body: some View {
Button(action: {
buttonText = "Tapped"
})
{
Text(buttonText)
.font(.largeTitle)
.padding()
.cornerRadius(4)
.overlay(
RoundedRectangle(cornerRadius: 16)
.stroke(Color.blue, lineWidth: 4)
)
}
}
}
struct ButtonView_Previews: PreviewProvider {
static var previews: some View {
ButtonView()
}
}
UIKit의 ViewController에서 호출
UIHostingController는 UIViewController를 계승하기 때문에 이것을 사용합니다
import UIKit
import SwiftUI
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let vc: UIHostingController = UIHostingController(rootView: ButtonView())
view.addSubview(vc.view)
// frameを決めないと表示されない
vc.view.translatesAutoresizingMaskIntoConstraints = false
vc.view.heightAnchor.constraint(equalToConstant: 200).isActive = true
vc.view.leftAnchor.constraint(equalTo: self.view.leftAnchor, constant: 16).isActive = true
vc.view.rightAnchor.constraint(equalTo: self.view.rightAnchor, constant: -16).isActive = true
vc.view.centerYAnchor.constraint(equalTo: self.view.centerYAnchor).isActive = true
}
}
UIHostingController 정보
Reference
이 문제에 관하여(UIKit의 ViewController에서 SwiftUI의 View 호출), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/oimo_revolution/articles/70c4e714b778b8텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)