Skip to content

Commit d8c439b

Browse files
author
Alex Usbergo
committed
SwiftUI bridge
1 parent 2969d20 commit d8c439b

File tree

4 files changed

+58
-13
lines changed

4 files changed

+58
-13
lines changed

Demo/CoreRenderDemo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Demo/CoreRenderDemo/AppDelegate.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
3434

3535
class SceneDelegate: UIResponder, UIWindowSceneDelegate {
3636

37-
var useSwiftUI = true
37+
var useSwiftUI = false
3838
var window: UIWindow?
3939

4040
func scene(

Demo/CoreRenderDemo/ContentView.swift

Lines changed: 24 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,21 +3,34 @@ import CoreRender
33
import Render
44

55
struct ContentView: View {
6-
var body: some View {
7-
VStack {
8-
Text("Hello World")
9-
CoreRenderBridgeView { context in
10-
VStackNode {
11-
LabelNode(text: "Hello World")
12-
EmptyNode()
13-
}
6+
var body: some View {
7+
VStack {
8+
Text("Hello From SwiftUI")
9+
CoreRenderBridgeView { context in
10+
VStackNode {
11+
LabelNode(text: "Hello")
12+
.font(UIFont.boldSystemFont(ofSize: 12))
13+
.textAlignment(.center)
14+
.padding(8)
15+
LabelNode(text: "From")
16+
.textAlignment(.center)
17+
.font(UIFont.boldSystemFont(ofSize: 12))
18+
.padding(8)
19+
LabelNode(text: "CoreRender")
20+
.textAlignment(.center)
21+
.font(UIFont.boldSystemFont(ofSize: 14))
22+
.padding(8)
1423
}
24+
.alignItems(.center)
25+
.background(UIColor.systemGroupedBackground)
26+
.matchHostingViewWidth(withMargin: 0)
1527
}
1628
}
29+
}
1730
}
1831

1932
struct ContentView_Previews: PreviewProvider {
20-
static var previews: some View {
21-
ContentView()
22-
}
33+
static var previews: some View {
34+
ContentView()
35+
}
2336
}

README.md

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,38 @@ func makeFragment(context: Context) {
116116

117117
```
118118

119+
### Use it with SwiftUI
120+
121+
Render nodes can be nested inside SwiftUI bodies by using `CoreRenderBridgeView`:
122+
```swift
123+
124+
struct ContentView: View {
125+
var body: some View {
126+
VStack {
127+
Text("Hello From SwiftUI")
128+
CoreRenderBridgeView { context in
129+
VStackNode {
130+
LabelNode(text: "Hello")
131+
LabelNode(text: "From")
132+
LabelNode(text: "CoreRender")
133+
}
134+
.alignItems(.center)
135+
.background(UIColor.systemGroupedBackground)
136+
.matchHostingViewWidth(withMargin: 0)
137+
}
138+
Text("Back to SwiftUI")
139+
}
140+
}
141+
}
142+
143+
struct ContentView_Previews: PreviewProvider {
144+
static var previews: some View {
145+
ContentView()
146+
}
147+
}
148+
149+
```
150+
119151
# Credits:
120152
Layout engine:
121153

0 commit comments

Comments
 (0)