4 * DefaultNavigationView usage example for Swift
5 * Demonstrates config, runtime updates, and widget access
7class DefaultNavigationViewExample {
9 func createNavigationView(frame: CGRect) -> NCDefaultNavigationView {
10 // [swift_DefaultNavigationView_constructor]
11 // Create with default config
12 let view = NCDefaultNavigationView(frame: frame)
13 // [swift_DefaultNavigationView_constructor]
15 // [swift_DefaultNavigationView_constructor_config]
16 // Create with custom configs (configs passed directly)
17 let viewConfig = NCDefaultNavigationViewConfig.defaultConfig()
18 viewConfig.visibleWidgets = [.zoomControls, .followMeButton] // hide floor selector
19 let followMeConfig = NCFollowMeButtonConfig.defaultConfig()
20 followMeConfig.accentColor = UIColor(red: 48/255, green: 170/255, blue: 217/255, alpha: 1) // 0xFF30AAD9
21 let customView = NCDefaultNavigationView(frame: frame, viewConfig: viewConfig, zoomConfig: nil, followMeConfig: followMeConfig, floorConfig: nil)
22 // [swift_DefaultNavigationView_constructor_config]
27 func demonstrateZoomControlsConfig() {
28 // [swift_ZoomControlsConfig]
29 let zoomConfig = NCZoomControlsConfig.defaultConfig()
30 zoomConfig.buttonBackgroundColor = UIColor(red: 250/255, green: 250/255, blue: 250/255, alpha: 242/255) // 0xF2FAFAFA
31 zoomConfig.textColor = UIColor(red: 21/255, green: 45/255, blue: 71/255, alpha: 1) // 0xFF152D47
32 zoomConfig.buttonWidth = 48
33 zoomConfig.zoomControlsHeight = 96
34 // zoomConfig.zoomInIcon = UIImage(named: "my_zoom_in")
35 // zoomConfig.zoomOutIcon = UIImage(named: "my_zoom_out")
36 // [swift_ZoomControlsConfig]
39 func demonstrateFollowMeButtonConfig() {
40 // [swift_FollowMeButtonConfig]
41 let followMeConfig = NCFollowMeButtonConfig.defaultConfig()
42 followMeConfig.accentColor = UIColor(red: 48/255, green: 170/255, blue: 217/255, alpha: 1) // 0xFF30AAD9
43 followMeConfig.buttonBackgroundColor = UIColor(red: 250/255, green: 250/255, blue: 250/255, alpha: 242/255) // 0xF2FAFAFA
44 followMeConfig.textColor = UIColor(red: 21/255, green: 45/255, blue: 71/255, alpha: 1) // 0xFF152D47
45 followMeConfig.buttonWidth = 48
46 followMeConfig.buttonHeight = 48
47 // followMeConfig.followMeIcon = UIImage(named: "my_follow_icon")
48 // followMeConfig.followMeIconActive = UIImage(named: "my_follow_icon_active")
49 // [swift_FollowMeButtonConfig]
52 func demonstrateFloorSelectorViewConfig() {
53 // [swift_FloorSelectorViewConfig]
54 let floorConfig = NCFloorSelectorViewConfig.defaultConfig()
55 floorConfig.accentColor = UIColor(red: 48/255, green: 170/255, blue: 217/255, alpha: 1) // 0xFF30AAD9
56 floorConfig.textColor = UIColor(red: 21/255, green: 45/255, blue: 71/255, alpha: 1) // 0xFF152D47
57 floorConfig.buttonBackgroundColor = UIColor(red: 250/255, green: 250/255, blue: 250/255, alpha: 242/255) // 0xF2FAFAFA
58 floorConfig.insets = UIEdgeInsets(top: 145, left: 16, bottom: 0, right: 0)
59 // [swift_FloorSelectorViewConfig]
62 func demonstrateConfigAtInit() {
63 // [swift_DefaultNavigationView_config]
64 let viewConfig = NCDefaultNavigationViewConfig.defaultConfig()
65 viewConfig.visibleWidgets = [.zoomControls, .followMeButton]
66 let zoomConfig = NCZoomControlsConfig.defaultConfig()
67 zoomConfig.buttonBackgroundColor = UIColor(red: 250/255, green: 250/255, blue: 250/255, alpha: 242/255) // 0xF2FAFAFA
68 let followMeConfig = NCFollowMeButtonConfig.defaultConfig()
69 followMeConfig.accentColor = UIColor(red: 48/255, green: 170/255, blue: 217/255, alpha: 1) // 0xFF30AAD9
70 // followMeConfig.followMeIcon = UIImage(named: "my_follow_icon")
71 // zoomConfig.zoomInIcon = UIImage(named: "my_zoom_in")
72 // zoomConfig.zoomOutIcon = UIImage(named: "my_zoom_out")
73 // [swift_DefaultNavigationView_config]
76 func demonstrateRuntimeConfigUpdate() {
77 // [swift_DefaultNavigationView_runtimeConfig]
78 let view = NCDefaultNavigationView(frame: .zero)
79 let newViewConfig = NCDefaultNavigationViewConfig.defaultConfig()
80 newViewConfig.visibleWidgets = .followMeButton
81 let newFollowMeConfig = NCFollowMeButtonConfig.defaultConfig()
82 newFollowMeConfig.accentColor = UIColor(red: 1, green: 0, blue: 0, alpha: 1) // 0xFFFF0000
83 view.setConfig(viewConfig: newViewConfig, zoomConfig: nil, followMeConfig: newFollowMeConfig, floorConfig: nil)
84 // [swift_DefaultNavigationView_runtimeConfig]
87 func demonstrateWidgetAccess() {
88 // [swift_DefaultNavigationView_widgetAccess]
89 let view = NCDefaultNavigationView(frame: .zero)
90 let floorSelector = view.floorSelectorView
91 let zoomControls = view.zoomControls
92 let followButton = view.followMeButton
93 // Use for advanced customization (may be nil if widget is hidden)
94 // [swift_DefaultNavigationView_widgetAccess]