Classes
The following classes are available globally.
-
The default audio session controller for iOS applications that use background audio.
See moreDeclaration
Swift
public final class RSDDefaultAudioSessionController : NSObject, RSDAudioSessionController
-
See moreRSDAudioSoundPlayer
is a concrete implementation of theRSDSoundPlayer
protocol that can be used to play system sounds usingAudioServicesCreateSystemSoundID()
.Declaration
Swift
open class RSDAudioSoundPlayer : NSObject, RSDSoundPlayer
-
See moreRSDSpeechSynthesizer
is a concrete implementation of theRSDVoiceBox
protocol that uses theAVSpeechSynthesizer
to synthesize text to sound.Declaration
Swift
open class RSDSpeechSynthesizer : NSObject, RSDVoiceBox, AVSpeechSynthesizerDelegate
-
RSDAppDelegate
is an optional class that can be used as the appDelegate for an application.Using this class as the base class of your app delegate is not required, but is included as a possible solution to certain common issues with setting up an app.
See moreDeclaration
Swift
open class RSDAppDelegate : UIResponder, RSDAppOrientationLock, RSDAlertPresenter
-
See moreRSDStepViewController
is the default base class implementation for the steps presented using this UI architecture.Declaration
Swift
open class RSDStepViewController : UIViewController, RSDStepController, RSDCancelActionController
-
See moreRSDTaskViewController
is the default implementation of task view controller that is suitable to the iPhone or iPad. The default implementation will display a series of steps using aUIPageViewController
. This controller will also handle starting and stoping async actions and vending the appropriate step view controller for each step.Declaration
Swift
open class RSDTaskViewController : UIViewController, RSDTaskController, UIPageViewControllerDelegate, UIPageViewControllerDataSource, RSDAsyncActionDelegate, RSDLoadingViewControllerProtocol
-
RSDActiveStepViewController
is a simple timer for displaying a longer activity where the user is doing an action while the countdown timer is running.This view controller includes a default nib implementation that is included in this framework. It includes various UI elements that can indicate to the user how much time is remaining in a longer-running step. For example, this could be used during a walk step to indicate to the user how long they have been walking as well as how much longer they have to walk before the step is complete.
Seealso
RSDTaskViewController.vendDefaultViewController(for:)
Declaration
Swift
open class RSDActiveStepViewController : RSDFullscreenImageStepViewController
-
RSDCountdownStepViewController
is a simple countdown timer for displaying a short duration (5-4-3-2-1) countdown.This view controller includes a default nib implementation that is included in this framework. It includes a
countdownLabel
that can be used to show a numeric countdown (5-4-3-2-1) and apauseButton
that can be used to pause the countdown timer.Seealso
RSDTaskViewController.vendDefaultViewController(for:)
Declaration
Swift
open class RSDCountdownStepViewController : RSDFullscreenImageStepViewController
-
See moreRSDInstructionStepViewController
is a custom step view controller that is intended to be used with theRSDInstructionStepViewController.nib
file. This is the default view controller for steps thatDeclaration
Swift
open class RSDInstructionStepViewController : RSDPermissionStepViewController
-
RSDNavigationController
extendsUINavigationController
with a pass-through implementation ofRSDStepController
.This allows step controllers to be wrapped in a navigation controller for UI implementations that use the features of a navigation controller, while passing control of the step to the step controller.
Note
For applications that customize the navigation controller with their own subclass implementation, this implementation can be copy/pasted and used to extend that custom implementation. This framework does not force using this implementation by extendingUINavigationController
directly.Declaration
Swift
open class RSDNavigationController : UINavigationController, RSDStepController
-
See moreRSDOverviewStepViewController
is a customizable view controller that is designed to be the first view displayed for an active task that may require checking the user’s permissions and allows the user to set a notification reminder to perform the task at a later time.Declaration
Swift
open class RSDOverviewStepViewController : RSDPermissionStepViewController
-
See moreRSDPermissionStepViewController
is a customizable view controller that is designed to be used to request and/or check the permission status for this view.Declaration
Swift
open class RSDPermissionStepViewController : RSDStepViewController
-
The scrolling overview step view controller is a custom subclass of the overview step view controller that uses a scrollview to allow showing detailed overview instructions.
See moreDeclaration
Swift
open class RSDScrollingOverviewStepViewController : RSDOverviewStepViewController
-
RSDTableStepViewController
is a custom instance ofRSDStepViewController
. Its subviews include aUITableView
, aRSDNavigationFooterView
, which may or may not be embedded in the tableView as its footerView, and aRSDNavigationHeaderView
, which is embedded in the tableView as its headerView.This class populates the contents and properties of the headerView and navigationView based on the associated
RSDStep
, which is expected to be set before presenting the view controller.An instance of
RSDFormStepDataSource
is created bysetupModel()
and assigned to propertytableData
. This method is called byviewWillAppear()
and serves as theUITableViewDataSource
. ThetableData
also keeps track of answers that are derived from the user’s input and it provides theRSDResult
that is appended to theRSDTaskViewModel
associated with this task.This class is responsible for acquiring input from the user, validating it, and supplying it as an answer to to the model (tableData). This is typically done in delegate callbacks from various input views, such as UITableView (didSelectRow) or UITextField (valueDidChange or shouldChangeCharactersInRange).
Some RSDSteps, such as
See moreRSDFactory.StepType.instruction
, require no user input (and have no input fields). These steps will result in atableData
that has no sections and, therefore, no rows. So the tableView will simply have a headerView, no rows, and a footerView.Declaration
Swift
open class RSDTableStepViewController : RSDStepViewController, UITableViewDataSource, UITableViewDelegate, UITextFieldDelegate, UITextViewDelegate, RSDTableDataSourceDelegate, RSDPickerObserver, RSDButtonCellDelegate, RSDTaskViewControllerDelegate
-
See moreRSDTableStepUIConfig
is a configuration class. All the methods are defined as@objc open class func
methods which can be overriden by an application to return different shared implementations. This allows the generic step to override the UI consistently for all step views that use eitherRSDTableStepViewController
or a subclass implementation.Declaration
Swift
public class RSDTableStepUIConfig : NSObject
-
RSDTaskInfoStepViewController
is designed to be used to display aRSDTaskInfoStep
either to give the user feedback when a task or survey is being fetched or else to provide a consistent UI for the introduction of all tasks.This view controller includes a default nib implementation that is included in this framework. It includes various UI elements that can indicate to the user how much time is remaining in a longer-running step. For example, this could be used during a walk step to indicate to the user how long they have been walking as well as how much longer they have to walk before the step is complete.
Seealso
RSDTaskViewController.vendDefaultViewController(for:)
Declaration
Swift
open class RSDTaskInfoStepViewController : RSDStepViewController, UITextViewDelegate
-
See moreRSDWebViewController
is a simple view controller for showing a webview. The base-class implementation supports loading a web view from a URL, HTML string, orRSDResourceTransformer
. It is assumed that the property will be set for one of these values.Declaration
Swift
open class RSDWebViewController : UIViewController, WKNavigationDelegate
-
See moreRSDBackgroundGradient
is a UI element for adding a shadow gradient to a view.Declaration
Swift
@IBDesignable public final class RSDBackgroundGradient : UIView, RSDViewDesignable
-
See moreRSDButtonCell
is used to display a button.Declaration
Swift
@IBDesignable open class RSDButtonCell : RSDTableViewCell
-
A checkmark view is a simple view that draws a checkmark on a dark background.
See moreDeclaration
Swift
@IBDesignable public final class RSDCheckmarkView : UIView
-
A table cell that displays using a checkbox.
See moreDeclaration
Swift
@IBDesignable public class RSDCheckboxTableCell : RSDTableViewCell
-
A table cell that displays using a checkbox.
See moreDeclaration
Swift
@IBDesignable public class RSDRadioButtonTableCell : RSDCheckboxTableCell
-
A button that displays using a checkbox.
See moreDeclaration
Swift
@IBDesignable public final class RSDCheckboxButton : UIButton
-
See moreRSDProgressIndicator
is an animatable abstract view that marks progress. Override theprogressLayer
property to show progress using a shape layer. SeeRSDCountdownDial
for an example implementation.Declaration
Swift
@IBDesignable open class RSDProgressIndicator : UIView
-
Declaration
Swift
@IBDesignable public final class RSDCountdownDial : RSDProgressIndicator, RSDViewDesignable
-
See moreRSDImageViewCell
can be used to display images amongst the table cells.Declaration
Swift
@IBDesignable open class RSDImageViewCell : RSDTableViewCell
-
See moreRSDLoadingView
is a simple loading view for displaying a loading indicator in a view.Declaration
Swift
open class RSDLoadingView : UIView
-
See moreRSDDatePicker
is a date picker that stores a pointer to the index path with which it is associated.Declaration
Swift
public class RSDDatePicker : UIDatePicker, RSDPickerViewProtocol
-
See moreRSDChoicePickerView
is aUIPickerView
that can be used to represent a picker with an associated index path. This picker has aRSDChoicePickerDataSource
as it’s source. This implementation only supports text choices.Declaration
Swift
open class RSDChoicePickerView : UIPickerView, RSDPickerViewProtocol, UIPickerViewDataSource, UIPickerViewDelegate, RSDViewDesignable
-
See moreRSDNumberPickerView
is aUIPickerView
that can be used to represent a picker with an associated index path. This picker has aRSDNumberPickerDataSource
as it’s source.Declaration
Swift
open class RSDNumberPickerView : UIPickerView, RSDPickerViewProtocol, UIPickerViewDataSource, UIPickerViewDelegate
-
RSDButton
is a base-class implementation ofRSDButtonProtocol
that handles overriding default accessibility behavior for a button in transition.Declaration
Swift
@IBDesignable open class RSDButton : UIButton
-
See moreRSDRoundedButton
is a UI element for displaying navigation buttons in the footer area of a view.Declaration
Swift
@IBDesignable open class RSDRoundedButton : RSDButton, RSDViewDesignable
-
RSDShadowGradient
is a UI element for adding a shadow gradient to a view.Declaration
Swift
@IBDesignable open class RSDShadowGradient : UIView
-
The status bar background is used on scrolling views to block the underlying view.
Seealso
RSDTableStepViewController
Declaration
Swift
@IBDesignable open class RSDStatusBarBackgroundView : UIView
-
See moreRSDSelectionTableViewCell
is the base implementation for a selection table view cell.Declaration
Swift
@IBDesignable open class RSDSelectionTableViewCell : RSDTableViewCell
-
See moreRSDStepChoiceCell
is a custom implementationn of a selection table cell to use for choice selection from a list of choices.Declaration
Swift
@IBDesignable public class RSDStepChoiceCell : RSDSelectionTableViewCell
-
See moreRSDStepNavigationView
is a customUIView
to be included in aRSDStepViewController
. It optionally contains references to standard step navigation UI including a next button, back button, skip button, learn more button, and cancel button.Declaration
Swift
@IBDesignable open class RSDStepNavigationView : UIView, RSDViewDesignable
-
See moreRSDNavigationHeaderView
is a general purpose navigation header view that can be used by the step view controller to include UI elements that may typically be shown at the top of the step view.Declaration
Swift
@IBDesignable open class RSDNavigationHeaderView : RSDStepNavigationView
-
See moreRSDStepHeaderView
is a customUIView
designed for use as a header view in a table view, such as anRSDTableStepViewController
.Declaration
Swift
@IBDesignable open class RSDStepHeaderView : RSDNavigationHeaderView
-
RSDTableStepHeaderView
is a concrete implementation ofRSDStepHeaderView
that will automatically lay out the UI elements in this order, from top to bottom of the view:- cancelButton: UIButton - allows for cancelling the task
- progressView: RSDStepProgressView - show progress thru the current flow
- imageView: UIImageView - shows an image associated with the current step
- titleLabel: UILabel - generally the Title of the current step
- textLabel: UILabel - generally the Text of the current step
- learnMoreButton: UIButton - a button to call the learnMoreAction
- detailLabel: UILabel - a label intended to prompt the user to enter data or make a selection
Several public properties are provided to configure the view, such has hiding or showing the learnMoreButton or progressView, and providing a minimumHeight or customView.
See moreDeclaration
Swift
open class RSDTableStepHeaderView : RSDStepHeaderView
-
See moreRSDNavigationFooterView
is an abstract implementation for theRSDStepNavigationView
which can be added to a Nib, Storyboard or instantiated using theRSDTableStepUIConfig.instantiatNavigationView()
method.Declaration
Swift
@IBDesignable open class RSDNavigationFooterView : RSDStepNavigationView
-
RSDGenericNavigationFooterView
is a concrete implementation ofRSDNavigationFooterView
that will automatically lay out the UI elements included in the navigation footer:- nextButton: UIButton - for navigating to the next step
- backButton: UIButton - for navigating to the previous step
- skipButton: UIButton - for skipping the step or task
- shadowView: RSDShadowGradient - shows a shadow to indicate that there is content below the fold
Declaration
Swift
@IBDesignable open class RSDGenericNavigationFooterView : RSDNavigationFooterView
-
RSDStepProgressView
is a UI element that displays a progress bar drawn horizontally from left to right.This view includes an optional pointer to
stepCountLabel
which is not a subview of this view but can be used to display current step and number of steps.The view controller must set
See morecurrentStep
andtotalSteps
to cause progress to be displayed.Declaration
Swift
@IBDesignable open class RSDStepProgressView : UIView, RSDViewDesignable
-
See moreRSDStepTextFieldCell
is the base implementation of a text field used to enter answers in a form step table view.Declaration
Swift
open class RSDStepTextFieldCell : RSDTableViewCell
-
See moreRSDStepTextViewCell
is the base implementation of a text view used to enter answers in a form step table view.Declaration
Swift
open class RSDStepTextViewCell : RSDTableViewCell
-
See moreRSDStepTextFieldFeaturedCell
is an implementation of the text field form step entry cell for use when there is a single input field on for the step.Declaration
Swift
open class RSDStepTextFieldFeaturedCell : RSDStepTextFieldCell
-
RSDStepTextField
is a subclass ofUITextField
that conforms to ‘RSDStepTextInputView’.Declaration
Swift
open class RSDStepTextField : UITextField, RSDStepTextInputView
-
RSDStepTextView
is a subclass ofUITextView
that conforms to ‘RSDStepTextInputView’.Declaration
Swift
open class RSDStepTextView : UITextView, RSDStepTextInputView
-
See moreRSDStepChoiceSectionHeader
is the base implementation for a selection table view section header of a form step.Declaration
Swift
@IBDesignable open class RSDTableSectionHeader : UITableViewHeaderFooterView, RSDViewDesignable
-
See moreRSDTableViewCell
is used to display a table cell that is linked to aRSDTableItem
.Declaration
Swift
@IBDesignable open class RSDTableViewCell : RSDDesignableTableViewCell
-
See moreRSDTableViewCell
is used to display a table cell that conforms to theRSDViewDesignable
protocol.Declaration
Swift
@IBDesignable open class RSDDesignableTableViewCell : UITableViewCell, RSDViewDesignable
-
The template image button is designed as a button that shows a template image within a button. There are different supported style-types for the button that can be used with the design system to set up the color of the button and the default tint for the image within.
See moreDeclaration
Swift
@IBDesignable open class RSDTemplateImageButton : UIButton, RSDViewDesignable
-
The template image view is designed as an image view that shows a template image within a framing view.
See moreDeclaration
Swift
@IBDesignable open class RSDTemplateImageView : UIView
-
See moreRSDTextLabelCell
can be used to display a text element such as a footnote in a table.Declaration
Swift
@IBDesignable open class RSDTextLabelCell : RSDTableViewCell
-
A simple button that draws a open/closed chevron that can be used to indicate whether or not the details are expanded.
See moreDeclaration
Swift
@IBDesignable public final class RSDDetailsChevronButton : UIButton
-
See moreRSDUnderlinedButton
is a UI element for displaying an underlined button.Declaration
Swift
@IBDesignable open class RSDUnderlinedButton : RSDButton, RSDViewDesignable