Skip to content

RtkPluginsView

A composite view for displaying plugins and screen share content. Includes a tab selector, plugin content area, and a floating active speaker view.

Initializer parameters

ParameterTypeRequiredDefaultDescription
videoPeerViewModelVideoPeerViewModel-The view model for the active speaker video

Properties

PropertyTypeRequiredDefaultDescription
activeListViewRtkActiveTabSelectorView--The tab selector for switching between plugins and screen shares
pluginVideoViewUIView--The container view for plugin content
syncButtonUIButton--Button to sync the plugin view with the presenter

Methods

MethodReturn TypeDescription
setButtons(buttons:selectedIndex:clickAction:)VoidConfigures the tab selector buttons with a selection handler
show(pluginView:)VoidDisplays a plugin view in the content area
showVideoView(participant:)VoidDisplays a participant's video in the content area
showPinnedView(participant:)VoidDisplays a pinned participant's video
showActiveSpeakerView(participant:)VoidShows the floating active speaker overlay
hideActiveSpeaker()VoidHides the floating active speaker overlay

Usage Examples

Basic Usage

Swift
import RealtimeKitUI
let viewModel = VideoPeerViewModel(
meeting: rtkClient,
participant: participant,
showSelfPreviewVideo: false
)
let pluginsView = RtkPluginsView(videoPeerViewModel: viewModel)
view.addSubview(pluginsView)

With tab buttons

Swift
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)