@maccesar/titools 5.2.5 → 5.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CONTRIBUTING.md +1 -1
- package/README.md +58 -97
- package/agents/ti-pro.md +4 -2
- package/commands/ti-audit.md +7 -5
- package/docs/examples.md +24 -13
- package/docs/knowledge-index.md +2 -1
- package/lib/config.js +1 -0
- package/package.json +1 -1
- package/skills/alloy-guides/SKILL.md +18 -179
- package/skills/alloy-guides/references/CLI_TASKS.md +17 -216
- package/skills/alloy-guides/references/CONCEPTS.md +27 -162
- package/skills/alloy-guides/references/CONTROLLERS.md +38 -236
- package/skills/alloy-guides/references/MODELS.md +47 -723
- package/skills/alloy-guides/references/MODELS_ADVANCED.md +21 -482
- package/skills/alloy-guides/references/VIEWS_DYNAMIC.md +12 -222
- package/skills/alloy-guides/references/VIEWS_STYLES.md +39 -358
- package/skills/alloy-guides/references/VIEWS_XML.md +36 -552
- package/skills/alloy-guides/references/WIDGETS.md +49 -127
- package/skills/alloy-howtos/SKILL.md +14 -169
- package/skills/alloy-howtos/references/best_practices.md +9 -113
- package/skills/alloy-howtos/references/cli_reference.md +18 -223
- package/skills/alloy-howtos/references/config_files.md +50 -133
- package/skills/alloy-howtos/references/debugging_troubleshooting.md +19 -63
- package/skills/alloy-howtos/references/samples.md +21 -138
- package/skills/ti-api/SKILL.md +10 -2
- package/skills/ti-api/references/api-android.md +36 -2
- package/skills/ti-api/references/api-app-platform.md +39 -3
- package/skills/ti-api/references/api-core.md +50 -18
- package/skills/ti-api/references/api-data-network.md +49 -35
- package/skills/ti-api/references/api-media.md +45 -27
- package/skills/ti-api/references/api-services.md +39 -9
- package/skills/ti-api/references/api-ui-android.md +33 -13
- package/skills/ti-api/references/api-ui-extras.md +41 -15
- package/skills/ti-api/references/api-ui-ios-animator.md +42 -26
- package/skills/ti-api/references/api-ui-ios.md +74 -2
- package/skills/ti-api/references/api-ui-lists.md +32 -16
- package/skills/ti-api/references/api-ui-text-input.md +34 -17
- package/skills/ti-api/references/api-ui-views.md +27 -1
- package/skills/ti-api/references/api-ui-windows-navigation.md +32 -18
- package/skills/ti-api/references/api-xml-global.md +66 -16
- package/skills/ti-create-release/SKILL.md +98 -0
- package/skills/ti-create-release/references/module-discovery.md +69 -0
- package/skills/ti-expert/references/adaptive-layouts.md +1 -1
- package/skills/ti-guides/SKILL.md +37 -76
- package/skills/ti-guides/references/advanced-data-and-images.md +122 -126
- package/skills/ti-guides/references/android-manifest.md +24 -83
- package/skills/ti-guides/references/app-distribution.md +31 -377
- package/skills/ti-guides/references/application-frameworks.md +127 -335
- package/skills/ti-guides/references/cli-reference.md +184 -633
- package/skills/ti-guides/references/commonjs-advanced.md +81 -231
- package/skills/ti-guides/references/compatibility-matrix.md +36 -75
- package/skills/ti-guides/references/hello-world.md +95 -70
- package/skills/ti-guides/references/hyperloop-native-access.md +52 -448
- package/skills/ti-guides/references/resources.md +174 -142
- package/skills/ti-guides/references/sdk-release-notes.md +28 -71
- package/skills/ti-guides/references/tiapp-config.md +222 -598
- package/skills/ti-howtos/SKILL.md +23 -123
- package/skills/ti-howtos/references/cross-platform-development.md +119 -324
- package/skills/ti-howtos/references/debugging-profiling.md +77 -445
- package/skills/ti-howtos/references/extending-titanium.md +199 -673
- package/skills/ti-howtos/references/local-data-sources.md +87 -300
- package/skills/ti-howtos/references/location-and-maps.md +86 -213
- package/skills/ti-howtos/references/media-apis.md +103 -223
- package/skills/ti-howtos/references/notification-services.md +86 -506
- package/skills/ti-howtos/references/remote-data-sources.md +97 -316
- package/skills/ti-howtos/references/using-modules.md +77 -133
- package/skills/ti-synthengine/SKILL.md +62 -111
- package/skills/ti-synthengine/assets/example/README.md +50 -59
- package/skills/ti-synthengine/assets/example/app.js +67 -65
- package/skills/ti-synthengine/assets/example/lib/sequenceOwner.js +39 -40
- package/skills/ti-synthengine/assets/example/lib/soundPreset.js +34 -0
- package/skills/ti-synthengine/assets/index.d.ts +122 -2
- package/skills/ti-synthengine/references/advanced-examples.md +4 -4
- package/skills/ti-synthengine/references/api.md +40 -18
- package/skills/ti-synthengine/references/audio-engine.md +15 -57
- package/skills/ti-synthengine/references/examples.md +63 -6
- package/skills/ti-synthengine/references/guide.md +61 -57
- package/skills/ti-synthengine/references/instruments-and-effects.md +15 -15
- package/skills/ti-synthengine/references/native-variation.md +53 -14
- package/skills/ti-synthengine/references/recipes-interaction.md +25 -20
- package/skills/ti-synthengine/references/recipes.md +19 -16
- package/skills/ti-synthengine/references/recommendations.md +12 -12
- package/skills/ti-synthengine/references/sound-api.md +197 -0
- package/skills/ti-synthengine/references/sound-design.md +7 -7
- package/skills/ti-synthengine/references/source-notes.md +62 -172
- package/skills/ti-synthengine/references/troubleshooting.md +17 -19
- package/skills/ti-synthengine/references/upgrade-2.0.0.md +40 -0
- package/skills/ti-ui/SKILL.md +28 -143
- package/skills/ti-ui/references/icons-and-splash-screens.md +74 -403
- package/skills/ti-ui/references/layouts-and-positioning.md +175 -402
- package/skills/ti-ui/references/listviews-and-performance.md +100 -703
- package/skills/ti-ui/references/platform-conventions.md +180 -0
- package/skills/ti-ui/references/user-interface.md +43 -0
- package/skills/alloy-guides/references/VIEWS_WITHOUT_CONTROLLERS.md +0 -102
- package/skills/alloy-howtos/references/custom_tags.md +0 -148
- package/skills/ti-guides/references/coding-best-practices.md +0 -149
- package/skills/ti-guides/references/javascript-primer.md +0 -414
- package/skills/ti-guides/references/reserved-words.md +0 -36
- package/skills/ti-guides/references/style-and-conventions.md +0 -103
- package/skills/ti-howtos/references/android-platform-deep-dives.md +0 -624
- package/skills/ti-howtos/references/automation-fastlane-appium.md +0 -96
- package/skills/ti-howtos/references/buffer-codec-streams.md +0 -162
- package/skills/ti-howtos/references/google-maps-v2.md +0 -172
- package/skills/ti-howtos/references/ios-map-kit.md +0 -149
- package/skills/ti-howtos/references/ios-platform-deep-dives.md +0 -611
- package/skills/ti-howtos/references/tutorials.md +0 -565
- package/skills/ti-howtos/references/web-content-integration.md +0 -287
- package/skills/ti-howtos/references/webpack-build-pipeline.md +0 -124
- package/skills/ti-synthengine/references/android-sim80-correction-evidence.zip +0 -0
- package/skills/ti-synthengine/references/android-sim80-correction.json +0 -162
- package/skills/ti-synthengine/references/audio-pipeline-validation.md +0 -19
- package/skills/ti-synthengine/references/bypass-physical-recheck-evidence.zip +0 -0
- package/skills/ti-synthengine/references/frontier-android-evidence.zip +0 -0
- package/skills/ti-synthengine/references/frontier-ipad-evidence.zip +0 -0
- package/skills/ti-synthengine/references/frontier-physical-validation.json +0 -1918
- package/skills/ti-synthengine/references/native-tone-repetition-validation.md +0 -59
- package/skills/ti-synthengine/references/native-variation-proposal.md +0 -182
- package/skills/ti-synthengine/references/native-variation-validation.md +0 -63
- package/skills/ti-synthengine/references/performance-review-evidence.zip +0 -0
- package/skills/ti-synthengine/references/performance-review.json +0 -1146
- package/skills/ti-synthengine/references/physical-validation.json +0 -1457
- package/skills/ti-synthengine/references/source-snapshot.json +0 -542
- package/skills/ti-synthengine/references/stats-performance.json +0 -2992
- package/skills/ti-synthengine/references/stats-performance.md +0 -82
- package/skills/ti-synthengine/references/studio-validation.json +0 -6202
- package/skills/ti-synthengine/references/unified-bypass-performance.json +0 -22425
- package/skills/ti-synthengine/references/unified-validation.json +0 -314
- package/skills/ti-ui/references/accessibility-deep-dive.md +0 -288
- package/skills/ti-ui/references/animation-and-matrices.md +0 -569
- package/skills/ti-ui/references/application-structures.md +0 -626
- package/skills/ti-ui/references/custom-fonts-styling.md +0 -549
- package/skills/ti-ui/references/event-handling.md +0 -401
- package/skills/ti-ui/references/gestures.md +0 -448
- package/skills/ti-ui/references/orientation.md +0 -374
- package/skills/ti-ui/references/platform-ui-android.md +0 -727
- package/skills/ti-ui/references/platform-ui-ios.md +0 -576
- package/skills/ti-ui/references/scrolling-views.md +0 -288
- package/skills/ti-ui/references/tableviews.md +0 -542
|
@@ -1,288 +0,0 @@
|
|
|
1
|
-
# Scrolling views
|
|
2
|
-
|
|
3
|
-
## 1. ScrollView vs ScrollableView
|
|
4
|
-
|
|
5
|
-
| Feature | ScrollView | ScrollableView |
|
|
6
|
-
| ---------------- | ------------------------------ | ----------------------------- |
|
|
7
|
-
| Purpose | Scrollable area of content | Paging through multiple views |
|
|
8
|
-
| Scroll direction | Vertical and/or horizontal | Horizontal only |
|
|
9
|
-
| Content size | `contentHeight`/`contentWidth` | Full-screen views |
|
|
10
|
-
| Interaction | Drag to scroll | Swipe to snap between pages |
|
|
11
|
-
| Use case | Long content, forms, images | Image gallery, onboarding |
|
|
12
|
-
|
|
13
|
-
## 2. ScrollView
|
|
14
|
-
|
|
15
|
-
### Create a ScrollView
|
|
16
|
-
|
|
17
|
-
```javascript
|
|
18
|
-
const scrollView = Ti.UI.createScrollView({
|
|
19
|
-
width: 300,
|
|
20
|
-
height: 200,
|
|
21
|
-
contentWidth: Ti.UI.SIZE, // Auto-fit to content
|
|
22
|
-
contentHeight: Ti.UI.SIZE, // Auto-fit to content
|
|
23
|
-
backgroundColor: 'white'
|
|
24
|
-
});
|
|
25
|
-
|
|
26
|
-
// Add content
|
|
27
|
-
const content = Ti.UI.createView({
|
|
28
|
-
width: 500,
|
|
29
|
-
height: 500,
|
|
30
|
-
backgroundColor: 'blue'
|
|
31
|
-
});
|
|
32
|
-
|
|
33
|
-
scrollView.add(content);
|
|
34
|
-
win.add(scrollView);
|
|
35
|
-
```
|
|
36
|
-
...
|
|
37
|
-
### ScrollView properties
|
|
38
|
-
|
|
39
|
-
| Property | Description | Platform |
|
|
40
|
-
| --------------------------------------------- | ------------------------------------------------------------------- | -------- |
|
|
41
|
-
| `contentWidth` / `contentHeight` | Size of the scrollable content area | All |
|
|
42
|
-
| `scrollType` | `'vertical'` or `'horizontal'` (Android only - see below) | Android |
|
|
43
|
-
| `showHorizontalScrollIndicator` | Show/hide horizontal scroll indicator | All |
|
|
44
|
-
| `showVerticalScrollIndicator` | Show/hide vertical scroll indicator | All |
|
|
45
|
-
| `zoomScale` / `minZoomScale` / `maxZoomScale` | Zoom level (values 0-1) | iOS |
|
|
46
|
-
| `horizontalBounce` / `verticalBounce` | Enable/disable bounce effect at edges | iOS |
|
|
47
|
-
| `canCancelEvents` | Allow ScrollView to cancel touch events in children (default: true) | iOS |
|
|
48
|
-
| `scrollable` | Enable/disable scrolling | All |
|
|
49
|
-
|
|
50
|
-
### ScrollView events
|
|
51
|
-
|
|
52
|
-
```javascript
|
|
53
|
-
scrollView.addEventListener('scroll', (e) => {
|
|
54
|
-
Ti.API.info('Scrolling...');
|
|
55
|
-
Ti.API.info(`Content offset: x=${e.contentOffset.x} y=${e.contentOffset.y}`);
|
|
56
|
-
});
|
|
57
|
-
|
|
58
|
-
scrollView.addEventListener('dragEnd', (e) => {
|
|
59
|
-
Ti.API.info('Drag ended');
|
|
60
|
-
e.source.setContentOffset({ x: 0, y: 0 }, { animated: true });
|
|
61
|
-
});
|
|
62
|
-
|
|
63
|
-
scrollView.addEventListener('scrollEnd', (e) => {
|
|
64
|
-
Ti.API.info('Scroll completely ended');
|
|
65
|
-
e.source.setContentOffset({ x: 0, y: 0 }, { animated: true });
|
|
66
|
-
});
|
|
67
|
-
```
|
|
68
|
-
...
|
|
69
|
-
### Android ScrollView direction
|
|
70
|
-
|
|
71
|
-
Android ScrollView can be vertical or horizontal, not both. If you do not set `scrollType`, Android auto-detects: if width equals contentWidth it defaults to vertical; if height equals contentHeight it defaults to horizontal. If Titanium cannot determine the direction, it logs a warning.
|
|
72
|
-
|
|
73
|
-
```javascript
|
|
74
|
-
// Explicit horizontal scroll
|
|
75
|
-
const scrollView = Ti.UI.createScrollView({
|
|
76
|
-
width: 300,
|
|
77
|
-
height: 200,
|
|
78
|
-
scrollType: 'horizontal', // Android: horizontal only
|
|
79
|
-
contentWidth: 600, // Must be larger than width
|
|
80
|
-
contentHeight: 200 // Same as height = no vertical scroll
|
|
81
|
-
});
|
|
82
|
-
```
|
|
83
|
-
...
|
|
84
|
-
## 3. ScrollableView
|
|
85
|
-
|
|
86
|
-
### Create a ScrollableView
|
|
87
|
-
|
|
88
|
-
```javascript
|
|
89
|
-
const view1 = Ti.UI.createView({ backgroundColor: '#123' });
|
|
90
|
-
const view2 = Ti.UI.createView({ backgroundColor: '#234' });
|
|
91
|
-
const view3 = Ti.UI.createView({ backgroundColor: '#345' });
|
|
92
|
-
|
|
93
|
-
const scrollableView = Ti.UI.createScrollableView({
|
|
94
|
-
views: [view1, view2, view3],
|
|
95
|
-
showPagingControl: true,
|
|
96
|
-
pagingControlHeight: 30,
|
|
97
|
-
pagingControlColor: 'blue'
|
|
98
|
-
});
|
|
99
|
-
|
|
100
|
-
win.add(scrollableView);
|
|
101
|
-
```
|
|
102
|
-
...
|
|
103
|
-
### ScrollableView events
|
|
104
|
-
|
|
105
|
-
```javascript
|
|
106
|
-
scrollableView.addEventListener('scroll', (e) => {
|
|
107
|
-
Ti.API.info(`Current page: ${e.currentPage}`);
|
|
108
|
-
Ti.API.info(`Views: ${e.view}`); // View object reference
|
|
109
|
-
});
|
|
110
|
-
|
|
111
|
-
// Android only, and lowercase: ScrollableView has no `dragEnd` event.
|
|
112
|
-
scrollableView.addEventListener('dragend', (e) => {
|
|
113
|
-
Ti.API.info(`Drag ended, settled on page: ${e.currentPage}`);
|
|
114
|
-
});
|
|
115
|
-
|
|
116
|
-
// Cross-platform equivalent — fires once the view stops moving.
|
|
117
|
-
scrollableView.addEventListener('scrollend', (e) => {
|
|
118
|
-
Ti.API.info(`Settled on page: ${e.currentPage}`);
|
|
119
|
-
});
|
|
120
|
-
```
|
|
121
|
-
...
|
|
122
|
-
### Image gallery
|
|
123
|
-
|
|
124
|
-
```javascript
|
|
125
|
-
const images = [];
|
|
126
|
-
for (let i = 1; i <= 10; i++) {
|
|
127
|
-
images.push(Ti.UI.createImageView({
|
|
128
|
-
image: `image${i}.jpg`,
|
|
129
|
-
width: Ti.UI.FILL,
|
|
130
|
-
height: Ti.UI.FILL
|
|
131
|
-
}));
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
const gallery = Ti.UI.createScrollableView({
|
|
135
|
-
views: images,
|
|
136
|
-
showPagingControl: true
|
|
137
|
-
});
|
|
138
|
-
```
|
|
139
|
-
|
|
140
|
-
### Onboarding wizard
|
|
141
|
-
|
|
142
|
-
```javascript
|
|
143
|
-
const page1 = createOnboardingPage('Welcome', 'Get started with our app');
|
|
144
|
-
const page2 = createOnboardingPage('Features', 'Learn about key features');
|
|
145
|
-
const page3 = createOnboardingPage('Get Started', 'Create your account');
|
|
146
|
-
|
|
147
|
-
const onboarding = Ti.UI.createScrollableView({
|
|
148
|
-
views: [page1, page2, page3],
|
|
149
|
-
showPagingControl: true
|
|
150
|
-
});
|
|
151
|
-
|
|
152
|
-
const nextButton = Ti.UI.createButton({
|
|
153
|
-
title: 'Next',
|
|
154
|
-
bottom: 20
|
|
155
|
-
});
|
|
156
|
-
nextButton.addEventListener('click', () => {
|
|
157
|
-
const current = onboarding.currentPage;
|
|
158
|
-
if (current < 2) {
|
|
159
|
-
onboarding.scrollToView(current + 1);
|
|
160
|
-
} else {
|
|
161
|
-
onboarding.close();
|
|
162
|
-
showMainApp();
|
|
163
|
-
}
|
|
164
|
-
});
|
|
165
|
-
```
|
|
166
|
-
|
|
167
|
-
### Long-form content
|
|
168
|
-
|
|
169
|
-
```javascript
|
|
170
|
-
const scrollView = Ti.UI.createScrollView({
|
|
171
|
-
width: Ti.UI.FILL,
|
|
172
|
-
height: Ti.UI.FILL,
|
|
173
|
-
contentHeight: Ti.UI.SIZE,
|
|
174
|
-
layout: 'vertical'
|
|
175
|
-
});
|
|
176
|
-
|
|
177
|
-
// Add many components
|
|
178
|
-
for (let i = 0; i < 50; i++) {
|
|
179
|
-
scrollView.add(Ti.UI.createLabel({
|
|
180
|
-
text: `Item ${i}`,
|
|
181
|
-
top: 10,
|
|
182
|
-
height: 40
|
|
183
|
-
}));
|
|
184
|
-
}
|
|
185
|
-
```
|
|
186
|
-
|
|
187
|
-
### Scrollable form
|
|
188
|
-
|
|
189
|
-
```javascript
|
|
190
|
-
const formScrollView = Ti.UI.createScrollView({
|
|
191
|
-
layout: 'vertical',
|
|
192
|
-
height: Ti.UI.FILL
|
|
193
|
-
});
|
|
194
|
-
|
|
195
|
-
const nameField = Ti.UI.createTextField({
|
|
196
|
-
hintText: 'Name',
|
|
197
|
-
top: 10, height: 40
|
|
198
|
-
});
|
|
199
|
-
|
|
200
|
-
const emailField = Ti.UI.createTextField({
|
|
201
|
-
hintText: 'Email',
|
|
202
|
-
top: 10, height: 40
|
|
203
|
-
});
|
|
204
|
-
|
|
205
|
-
const submitButton = Ti.UI.createButton({
|
|
206
|
-
title: 'Submit',
|
|
207
|
-
top: 10
|
|
208
|
-
});
|
|
209
|
-
|
|
210
|
-
formScrollView.add(nameField);
|
|
211
|
-
formScrollView.add(emailField);
|
|
212
|
-
formScrollView.add(submitButton);
|
|
213
|
-
```
|
|
214
|
-
...
|
|
215
|
-
### ScrollableView
|
|
216
|
-
|
|
217
|
-
```javascript
|
|
218
|
-
// Move to page 2
|
|
219
|
-
scrollableView.scrollToView(1);
|
|
220
|
-
|
|
221
|
-
// Move to last page
|
|
222
|
-
scrollableView.scrollToView(scrollableView.views.length - 1);
|
|
223
|
-
|
|
224
|
-
// Get current page
|
|
225
|
-
const current = scrollableView.currentPage;
|
|
226
|
-
```
|
|
227
|
-
|
|
228
|
-
## 8. Detecting scroll position
|
|
229
|
-
|
|
230
|
-
```javascript
|
|
231
|
-
scrollView.addEventListener('scroll', (e) => {
|
|
232
|
-
const { x, y } = e.contentOffset;
|
|
233
|
-
|
|
234
|
-
// Detect near bottom
|
|
235
|
-
const maxScroll = scrollView.contentHeight - scrollView.height;
|
|
236
|
-
if (y > maxScroll - 50) {
|
|
237
|
-
loadMoreContent();
|
|
238
|
-
}
|
|
239
|
-
});
|
|
240
|
-
```
|
|
241
|
-
|
|
242
|
-
## Best practices
|
|
243
|
-
|
|
244
|
-
1. Use ScrollableView for paginated content (galleries, wizards)
|
|
245
|
-
2. Use ScrollView for continuous scrolling content (long forms, articles)
|
|
246
|
-
3. Specify dimensions explicitly on Android when possible
|
|
247
|
-
4. Consider performance with large datasets
|
|
248
|
-
5. Test on real devices; simulator behavior may differ
|
|
249
|
-
6. Use paging controls for ScrollableView to improve UX
|
|
250
|
-
|
|
251
|
-
## Community-Discovered Patterns
|
|
252
|
-
|
|
253
|
-
### ScrollView inside NavigationWindow with Large Titles (iOS)
|
|
254
|
-
|
|
255
|
-
When placing a ScrollView inside a Window managed by NavigationWindow, configure the Window to ensure proper content positioning — especially when using large titles or translucent bars.
|
|
256
|
-
|
|
257
|
-
Three Window properties must be set together:
|
|
258
|
-
|
|
259
|
-
| Property | Value | Purpose |
|
|
260
|
-
|---|---|---|
|
|
261
|
-
| `extendEdges` | `[Ti.UI.EXTEND_EDGE_ALL]` | Content extends behind bars (enables blur effect) |
|
|
262
|
-
| `autoAdjustScrollViewInsets` | `true` | iOS adjusts ScrollView insets to avoid overlap |
|
|
263
|
-
| `largeTitleEnabled` | `true` | Enables large title that collapses on scroll |
|
|
264
|
-
|
|
265
|
-
Without `autoAdjustScrollViewInsets`, the ScrollView content overlaps behind the navigation bar when `extendEdges` is set. Without `extendEdges`, the large title renders with a visible delay as iOS cannot calculate the full layout upfront.
|
|
266
|
-
|
|
267
|
-
This applies to both standalone NavigationWindow and TabGroup (which wraps each Tab in an implicit NavigationWindow on iOS).
|
|
268
|
-
|
|
269
|
-
```javascript
|
|
270
|
-
const win = Ti.UI.createWindow({
|
|
271
|
-
title: 'Feed',
|
|
272
|
-
largeTitleEnabled: true,
|
|
273
|
-
extendEdges: [Ti.UI.EXTEND_EDGE_ALL],
|
|
274
|
-
autoAdjustScrollViewInsets: true
|
|
275
|
-
});
|
|
276
|
-
|
|
277
|
-
const scroll = Ti.UI.createScrollView({
|
|
278
|
-
layout: 'vertical',
|
|
279
|
-
contentWidth: Ti.UI.FILL,
|
|
280
|
-
contentHeight: Ti.UI.SIZE
|
|
281
|
-
});
|
|
282
|
-
|
|
283
|
-
// Content starts below the nav bar automatically
|
|
284
|
-
scroll.add(Ti.UI.createView({ height: 200, backgroundColor: 'red' }));
|
|
285
|
-
win.add(scroll);
|
|
286
|
-
```
|
|
287
|
-
|
|
288
|
-
See [platform-ui-ios.md](platform-ui-ios.md) for the full explanation with `largeTitleDisplayMode` options.
|