> For the complete documentation index, see [llms.txt](https://xojo.gitbook.io/add-ons/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://xojo.gitbook.io/add-ons/stackview/version-3/details/viewcontroller.md).

# ViewController

{% hint style="info" %}
Class (inherits from [DesktopContainer](https://documentation.xojo.com/api/user_interface/desktop/desktopcontainer.html))
{% endhint %}

## Constants

### 🔒 kExpansionPerTick As Number = 30

Measure/Step (Pixel) while a ViewController collapse/expand.

### 🔒 kPeriod As Number = 30

Period (ms) while a ViewController collapse/expand.

## Events

| [Collapse](#collapse)                                                 | [Expand](#expand) |
| --------------------------------------------------------------------- | ----------------- |
| [ScrollerStyleChanged](#scrollerstylechanged-showondemand-as-boolean) |                   |

### Collapse

Fires if a ViewController is collapsed.

### Expand

Fires if a ViewController is expanded.

### ScrollerStyleChanged(showOnDemand As [Boolean](https://documentation.xojo.com/api/data_types/boolean.html))

Fires if [*ScrollerStyleChange*](#scrollerstylechange) Method gets called.

**Parameters**

| Name           | Description                                                                                                                                                             |
| -------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| *showOnDemand* | A [Boolean](https://documentation.xojo.com/api/data_types/boolean.html) specifiying the state of the macOS Scrollers if `UseNativeScroller = True` on ScrollController. |

## Methods

| [Expand](#expand-value-as-boolean)          | [Init](#init-collapsedheight-as-integer-expandedheight-as-integer) |
| ------------------------------------------- | ------------------------------------------------------------------ |
| [ScrollerStyleChange](#scrollerstylechange) |                                                                    |

### Expand(value As [Boolean](https://documentation.xojo.com/api/data_types/boolean.html))

Expand or collapse a ViewController.

**Parameters**

| Name    | Description                                                                                                          |
| ------- | -------------------------------------------------------------------------------------------------------------------- |
| *value* | A [Boolean](https://documentation.xojo.com/api/data_types/boolean.html) specifiying the state of the ViewController. |

### Init(collapsedHeight As [Integer](https://documentation.xojo.com/api/data_types/integer.html), expandedHeight As [Integer](https://documentation.xojo.com/api/data_types/integer.html))

Set a ViewController’s collapsed and expanded height.

**Parameters**

| Name              | Description                                                                                                                      |
| ----------------- | -------------------------------------------------------------------------------------------------------------------------------- |
| *collapsedHeight* | An [Integer](https://documentation.xojo.com/api/data_types/integer.html) specifiying the height of the collapsed ViewController. |
| *expandedHeight*  | An [Integer](https://documentation.xojo.com/api/data_types/integer.html) specifiying the height of the expanded ViewController.  |

### ScrollerStyleChange(showOnDemand As [Boolean](https://documentation.xojo.com/api/data_types/boolean.html))

Calls the [ScrollerStyleChanged](#scrollerstylechanged-showondemand-as-boolean)-Event.

## Properties

### Expanded As Boolean

Return state of a ViewController.

### UseAnimation As Boolean

Animate a ViewController while collapsing/expending.
