mirror of
https://github.com/material-components/material-components-ios.git
synced 2026-02-20 08:27:32 +08:00
47 lines
1.6 KiB
Markdown
47 lines
1.6 KiB
Markdown
### Shifting a flexible header off-screen
|
|
|
|
A flexible header that tracks a scroll view will expand and contract its height in reaction to
|
|
scroll view events. A flexible header can also shift off-screen in reaction to scroll view events
|
|
by changing the flexible header's behavior.
|
|
|
|
<!--<div class="material-code-render" markdown="1">-->
|
|
#### Swift
|
|
```swift
|
|
headerViewController.headerView.shiftBehavior = .enabled
|
|
```
|
|
|
|
#### Objective-C
|
|
```objc
|
|
headerViewController.headerView.shiftBehavior = MDCFlexibleHeaderShiftBehaviorEnabled;
|
|
```
|
|
<!--</div>-->
|
|
|
|
> Important: when a flexible header shifts off-screen it **will not hide the content views**. Your
|
|
> content views are responsible for hiding themselves in reaction to the flexible header shifting
|
|
> off-screen. Read the section on [Reacting to frame changes](#reacting-to-frame-changes) for more
|
|
> information.
|
|
|
|
It is also possible to hide the status bar when shifting the flexible header off-screen. Enable this
|
|
behavior by setting the `enabledWithStatusBar` behavior and implementing
|
|
`childViewControllerForStatusBarHidden` on the parent view controller.
|
|
|
|
<!--<div class="material-code-render" markdown="1">-->
|
|
#### Swift
|
|
```swift
|
|
headerViewController.headerView.shiftBehavior = .enabledWithStatusBar
|
|
|
|
override func childViewControllerForStatusBarHidden() -> UIViewController? {
|
|
return headerViewController
|
|
}
|
|
```
|
|
|
|
#### Objective-C
|
|
```objc
|
|
headerViewController.headerView.shiftBehavior = MDCFlexibleHeaderShiftBehaviorEnabledWithStatusBar;
|
|
|
|
- (UIViewController *)childViewControllerForStatusBarHidden {
|
|
return _headerViewController;
|
|
}
|
|
```
|
|
<!--</div>-->
|