A composite view for displaying plugins and screen share content. Includes a tab selector, plugin content area, and a floating active speaker view.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
videoPeerViewModel |
VideoPeerViewModel |
✅ | - | The view model for the active speaker video |
| Property | Type | Required | Default | Description |
|---|---|---|---|---|
activeListView |
RtkActiveTabSelectorView |
- | - | The tab selector for switching between plugins and screen shares |
pluginVideoView |
UIView |
- | - | The container view for plugin content |
syncButton |
UIButton |
- | - | Button to sync the plugin view with the presenter |
| Method | Return Type | Description |
|---|---|---|
setButtons(buttons:selectedIndex:clickAction:) |
Void |
Configures the tab selector buttons with a selection handler |
show(pluginView:) |
Void |
Displays a plugin view in the content area |
showVideoView(participant:) |
Void |
Displays a participant's video in the content area |
showPinnedView(participant:) |
Void |
Displays a pinned participant's video |
showActiveSpeakerView(participant:) |
Void |
Shows the floating active speaker overlay |
hideActiveSpeaker() |
Void |
Hides the floating active speaker overlay |
import RealtimeKitUI
let viewModel = VideoPeerViewModel(
meeting: rtkClient,
participant: participant,
showSelfPreviewVideo: false
)
let pluginsView = RtkPluginsView(videoPeerViewModel: viewModel)
view.addSubview(pluginsView)import RealtimeKitUI
let viewModel = VideoPeerViewModel(
meeting: rtkClient,
participant: participant,
showSelfPreviewVideo: false
)
let pluginsView = RtkPluginsView(videoPeerViewModel: viewModel)
let buttons = [
RtkPluginScreenShareTabButton(image: nil, title: "Screen Share"),
RtkPluginScreenShareTabButton(image: nil, title: "Whiteboard")
]
pluginsView.setButtons(
buttons: buttons,
selectedIndex: 0,
clickAction: { index in
print("Selected tab: \(index)")
}
)
view.addSubview(pluginsView)