From 1f8cd6dde3abd1c7fb7115f80536a9237fbe9383 Mon Sep 17 00:00:00 2001 From: cb1kenobi Date: Mon, 2 Oct 2023 14:59:47 +0000 Subject: [PATCH] Apply automatic changes --- docs/api/api.json | 1446 +----------------------- docs/api/structs/matrixcreationdict.md | 18 - docs/api/titanium/ui/2dmatrix.md | 87 -- docs/api/titanium/ui/3dmatrix.md | 56 - docs/api/titanium/ui/button.md | 3 + docs/api/titanium/ui/listview.md | 4 +- docs/api/titanium/ui/matrix2d.md | 4 +- docs/api/titanium/ui/matrix3d.md | 4 +- docs/api/titanium/ui/scrollableview.md | 1 + docs/api/titanium/ui/scrollview.md | 5 +- docs/api/titanium/ui/tableview.md | 15 +- docs/api/titanium/ui/textarea.md | 6 +- docs/api/titanium/ui/textfield.md | 8 +- docs/api/titanium/ui/view.md | 4 + docs/api/titanium/ui/webview.md | 6 +- 15 files changed, 38 insertions(+), 1629 deletions(-) delete mode 100644 docs/api/structs/matrixcreationdict.md delete mode 100644 docs/api/titanium/ui/2dmatrix.md delete mode 100644 docs/api/titanium/ui/3dmatrix.md diff --git a/docs/api/api.json b/docs/api/api.json index e63a3b320bc..1a0ca4a2b69 100644 --- a/docs/api/api.json +++ b/docs/api/api.json @@ -1523,11 +1523,11 @@ "examples": [ { "description": "Round View Example", - "code": "Create a rounded view.\n\n``` js\nvar view = Titanium.UI.createView({\n borderRadius:10,\n backgroundColor:'red',\n width:50,\n height:50\n});\nwindow.add(view);\n```\n" + "code": "Create a rounded view.\n\n``` js\nconst window = Ti.UI.createWindow();\nvar view = Titanium.UI.createView({\n borderRadius:10,\n backgroundColor:'red',\n width:50,\n height:50\n});\nwindow.add(view);\nwindow.open();\n```\n" }, { "description": "Alloy XML Markup", - "code": "Previous example as an Alloy view.\n\n``` xml\n\n \n\n```\n" + "code": "Previous example as an Alloy view.\n\n``` xml\n\n \n \n \n\n```\n" } ], "methods": [ @@ -98213,1342 +98213,6 @@ } ] }, - "Titanium.UI.2DMatrix": { - "name": "Titanium.UI.2DMatrix", - "summary": "The 2D Matrix is an object for holding values for an affine transformation matrix.", - "extends": "Titanium.Proxy", - "platforms": [ - { - "since": "0.9", - "name": "android" - }, - { - "since": "0.9", - "name": "iphone" - }, - { - "since": "0.9", - "name": "ipad" - }, - { - "since": "9.2.0", - "name": "macos" - } - ], - "type": "object", - "editUrl": "https://github.com/appcelerator/titanium_mobile/edit/master/apidoc/Titanium/UI/2DMatrix.yml", - "deprecated": { - "notes": "Use [Titanium.UI.Matrix2D](Titanium.UI.Matrix2D) for improved ES6+ compatibility instead.", - "since": "8.0.0" - }, - "description": "A 2D matrix is used to rotate, scale, translate, or skew the objects in a two-dimensional space.\nA 2D affine transformation can be represented by a 3 by 3 matrix:\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
ab0
cd0
txty1
\n\nThe third column is constant (0,0,1).\n\nOn iOS, the matrix terms, `a`, `b`, `c`, `d`, `tx`, and `ty`,\nare available as properties. On Android, the matrix terms are not available as properties.\n\nUse the method to create a new 2D matrix. You can\npass an optional dictionary to the method to initialize the\nmatrix. For example, the following creates a new matrix with a 45 degree rotation.\n\n``` js\nvar m = Ti.UI.create2DMatrix({\n rotate: 45\n});\n```\n\nIf you pass no arguments, `create2DMatrix` returns an identity matrix.\n", - "examples": [ - { - "description": "Apply a 2D Matrix to a Label", - "code": "The following uses a 2D matrix to translate a label in the y direction.\n\n``` js\nvar win = Ti.UI.createWindow({\n backgroundColor: 'white'\n});\n\nvar label = Ti.UI.createLabel({\n font:{fontSize:50},\n text:'Titanium',\n textAlign:'center',\n top: 100\n});\nwin.add(label);\n\nvar button = Ti.UI.createButton({\n title:'Animate',\n bottom:20,\n width:200, height:40\n});\nwin.add(button);\n\nbutton.addEventListener('click', function(){\n var t1 = Ti.UI.create2DMatrix();\n t1 = t1.translate(0, 300);\n var a1 = Ti.UI.createAnimation();\n a1.transform = t1;\n a1.duration = 800;\n label.animate(a1);\n});\nwin.open();\n```\n" - } - ], - "methods": [ - { - "name": "addEventListener", - "summary": "Adds the specified callback as an event listener for the named event.", - "platforms": [ - { - "since": "0.9", - "name": "android" - }, - { - "since": "0.9", - "name": "iphone" - }, - { - "since": "0.9", - "name": "ipad" - }, - { - "since": "9.2.0", - "name": "macos" - } - ], - "inherits": "Titanium.Proxy", - "parameters": [ - { - "name": "name", - "summary": "Name of the event.", - "type": "String" - }, - { - "name": "callback", - "summary": "Callback function to invoke when the event is fired.", - "type": "Callback" - } - ], - "returns": { - "type": "void" - } - }, - { - "name": "removeEventListener", - "summary": "Removes the specified callback as an event listener for the named event.", - "description": "Multiple listeners can be registered for the same event, so the\n`callback` parameter is used to determine which listener to remove.\n\nWhen adding a listener, you must save a reference to the callback function\nin order to remove the listener later:\n\n``` js\nvar listener = function() { Ti.API.info(\"Event listener called.\"); }\nwindow.addEventListener('click', listener);\n```\n\nTo remove the listener, pass in a reference to the callback function:\n\n``` js\nwindow.removeEventListener('click', listener);\n```\n", - "platforms": [ - { - "since": "0.9", - "name": "android" - }, - { - "since": "0.9", - "name": "iphone" - }, - { - "since": "0.9", - "name": "ipad" - }, - { - "since": "9.2.0", - "name": "macos" - } - ], - "inherits": "Titanium.Proxy", - "parameters": [ - { - "name": "name", - "summary": "Name of the event.", - "type": "String" - }, - { - "name": "callback", - "summary": "Callback function to remove. Must be the same function passed to `addEventListener`.", - "type": "Callback" - } - ], - "returns": { - "type": "void" - } - }, - { - "name": "fireEvent", - "summary": "Fires a synthesized event to any registered listeners.", - "platforms": [ - { - "since": "0.9", - "name": "android" - }, - { - "since": "0.9", - "name": "iphone" - }, - { - "since": "0.9", - "name": "ipad" - }, - { - "since": "9.2.0", - "name": "macos" - } - ], - "inherits": "Titanium.Proxy", - "parameters": [ - { - "name": "name", - "summary": "Name of the event.", - "type": "String" - }, - { - "name": "event", - "summary": "A dictionary of keys and values to add to the object sent to the listeners.", - "type": "Dictionary", - "optional": true - } - ], - "returns": { - "type": "void" - } - }, - { - "name": "applyProperties", - "summary": "Applies the properties to the proxy.", - "description": "Properties are supplied as a dictionary. Each key-value pair in the object is applied to the proxy such that\nmyproxy[key] = value.\n", - "platforms": [ - { - "since": "3.0.0", - "name": "android" - }, - { - "since": "3.0.0", - "name": "iphone" - }, - { - "since": "3.0.0", - "name": "ipad" - }, - { - "since": "9.2.0", - "name": "macos" - } - ], - "inherits": "Titanium.Proxy", - "parameters": [ - { - "name": "props", - "summary": "A dictionary of properties to apply.", - "type": "Dictionary" - } - ], - "returns": { - "type": "void" - } - }, - { - "name": "invert", - "summary": "Returns a matrix constructed by inverting this matrix.", - "platforms": [ - { - "since": "0.9", - "name": "android" - }, - { - "since": "0.9", - "name": "iphone" - }, - { - "since": "0.9", - "name": "ipad" - }, - { - "since": "9.2.0", - "name": "macos" - } - ], - "returns": { - "type": "Titanium.UI.2DMatrix" - } - }, - { - "name": "multiply", - "summary": "Returns a matrix constructed by combining two existing matrices.", - "description": "The argument, `t2` is concatenated to the matrix instance against which the function is invoked. The\nresulting matrix is the result of multiplying this matrix by `t2`. You might perform several\nmultiplications in order to create a single matrix that contains the cumulative effects of\nseveral transformations.\n\nNote that matrix operations are not commutative -- the order in which you concatenate matrices\nis important. That is, the result of multiplying matrix `t1` by matrix `t2` does not necessarily\nequal the result of multiplying matrix `t2` by matrix `t1`.\n", - "platforms": [ - { - "since": "0.9", - "name": "android" - }, - { - "since": "0.9", - "name": "iphone" - }, - { - "since": "0.9", - "name": "ipad" - }, - { - "since": "9.2.0", - "name": "macos" - } - ], - "parameters": [ - { - "name": "t2", - "summary": "The second matrix.", - "type": "Titanium.UI.2DMatrix" - } - ], - "returns": { - "type": "Titanium.UI.2DMatrix" - } - }, - { - "name": "rotate", - "summary": "Returns a matrix constructed by rotating this matrix.", - "description": "There are two distinct versions of this method, depending on whether one argument\nor two are specified.\n\n* `rotate(angle)`. The standard `rotate` method.\n* `rotate(fromAngle, toAngle)`. Android only. Used for specifying rotation\n animations.\n\nIn both cases, a positive value specifies clockwise rotation and a negative value\nspecifies counter-clockwise rotation.\n\nDetails for each version are discussed below.\n\n#### rotate(angle)\n\nReturns a matrix constructed by rotating this matrix.\n\nNote that the resulting matrix only expresses the final transformation, not the\ndirection of the rotation. For example, the matrix produced by `m1.rotate(-10)`\nis identical to the matrix produced by `m1.rotate(350)` and `m1.rotate(710)`.\n\nNote that if you specify a rotation matrix as the `transform` property of an\nanimation, the animation animates the view from its current rotation to the\nrotation represented by the matrix by its shortest path. So to rotate a view\nin a complete circle, the easiest method is to chain together three animations,\nrotating 120 degrees each time.\n\nFor the purposes of animation, it should be noted that the rotation angle is\nnormalized to the range -180 <= angle < 180. In other\nwords, an angle of 180 degrees is normalized to -180. This makes no difference\nexcept when determining which direction an animation rotates. 179 degrees rotates\nrotate clockwise, but 180 degrees is normalized to -180, so rotates counter-clockwise.\n\n#### rotate(angle, toAngle) -- Android Only\n\nThis is an Android-specific method used for creating rotation animations.\nReturns a `2DMatrix` object that represents a rotation from `angle` to `toAngle`.\n\nAngles are specified in degrees. Positive values represent clockwise rotation, and negative values\nrepresent counter-clockwise rotation. Values are not normalized, so for example an\nangle of 720 degrees represents two complete clockwise revolutions.\n\nThe resulting object cannot be expressed as an affine transform, but can be used with the\n property to specify a rotation animation.\n", - "platforms": [ - { - "since": "0.9", - "name": "android" - }, - { - "since": "0.9", - "name": "iphone" - }, - { - "since": "0.9", - "name": "ipad" - }, - { - "since": "9.2.0", - "name": "macos" - } - ], - "parameters": [ - { - "name": "angle", - "summary": "Angle to rotate to, in degrees. On Android, if `toAngle` is specified, this specifies\nthe starting angle for a rotation animation.\n", - "type": "Number" - }, - { - "name": "toAngle", - "summary": "Ending angle for a rotation animation, in degrees. Android only.", - "type": "Number", - "optional": true - } - ], - "returns": { - "type": "Titanium.UI.2DMatrix" - } - }, - { - "name": "scale", - "summary": "Returns a `2DMatrix` object that specifies a scaling animation from one scale to another.\n", - "description": "There are two distinct versions of this method, depending on whether two arguments\nor four are specified.\n\n* `scale(sx, sy)`. The standard `scale` method.\n* `scale(fromSx, fromSy, toSx, toSy)`. Android only. Used for specifying a\n scaling animation from one size to another.\n\n#### scale(sx, sy)\n\nReturns a matrix constructed by applying a scale transform to this matrix.\nScaling the current matrix by `sx` along the X axis and by `sy` along the Y axis.\n\n#### scale(sx, sy, toSx, toSy) -- Android Only\n\nThis Android-specific method returns a `2DMatrix` object that can be used to\ncreate a scaling animation from one scale factor to another scale factor.\n\nThe resulting object cannot be expressed as an affine transform, but can be used with the\n property to specify a scaling animation.\n", - "platforms": [ - { - "since": "0.9", - "name": "android" - }, - { - "since": "0.9", - "name": "iphone" - }, - { - "since": "0.9", - "name": "ipad" - }, - { - "since": "9.2.0", - "name": "macos" - } - ], - "parameters": [ - { - "name": "sx", - "summary": "Horizontal scaling factor. If `toSx` and `toSy` are specified,\nthis specifies the starting horizontal scaling factor, at the beginning\nof an animation.\n", - "type": "Number" - }, - { - "name": "sy", - "summary": "Vertical scaling factor. If `toSx` and `toSy` are specified,\nthis specifies the starting vertical scaling factor, at the beginning of\nan animation.\n", - "type": "Number" - }, - { - "name": "toSx", - "summary": "Ending horizontal scaling factor, at the end of an animation.\nIf specified, `toSy` must be specified as well. Android only.\n", - "type": "Number", - "optional": true - }, - { - "name": "toSy", - "summary": "Ending vertical scaling factor, at the end of an animation.\nIf specified, `toSx` must be specified as well. Android only.\n", - "type": "Number", - "optional": true - } - ], - "returns": { - "type": "Titanium.UI.2DMatrix" - } - }, - { - "name": "translate", - "summary": "Returns a matrix constructed by applying a translation transform to this matrix.", - "platforms": [ - { - "since": "0.9", - "name": "android" - }, - { - "since": "0.9", - "name": "iphone" - }, - { - "since": "0.9", - "name": "ipad" - }, - { - "since": "9.2.0", - "name": "macos" - } - ], - "parameters": [ - { - "name": "tx", - "summary": "Horizontal component of the translation.", - "type": "Number" - }, - { - "name": "ty", - "summary": "Vertical component of the translation.", - "type": "Number" - } - ], - "returns": { - "type": "Titanium.UI.2DMatrix" - } - } - ], - "properties": [ - { - "name": "bubbleParent", - "summary": "Indicates if the proxy will bubble an event to its parent.", - "description": "Some proxies (most commonly views) have a relationship to other proxies, often\nestablished by the add() method. For example, for a button added to a window, a\nclick event on the button would bubble up to the window. Other common parents are\ntable sections to their rows, table views to their sections, and scrollable views\nto their views. Set this property to false to disable the bubbling to the proxy's parent.\n", - "platforms": [ - { - "since": "3.0.0", - "name": "android" - }, - { - "since": "3.0.0", - "name": "iphone" - }, - { - "since": "3.0.0", - "name": "ipad" - }, - { - "since": "9.2.0", - "name": "macos" - } - ], - "inherits": "Titanium.Proxy", - "type": "Boolean", - "default": true - }, - { - "name": "apiName", - "summary": "The name of the API that this proxy corresponds to.", - "description": "The value of this property is the fully qualified name of the API. For example, [Button](Titanium.UI.Button)\nreturns `Ti.UI.Button`.\n", - "platforms": [ - { - "since": "3.2.0", - "name": "android" - }, - { - "since": "3.2.0", - "name": "iphone" - }, - { - "since": "3.2.0", - "name": "ipad" - }, - { - "since": "9.2.0", - "name": "macos" - } - ], - "inherits": "Titanium.Proxy", - "type": "String", - "permission": "read-only" - }, - { - "name": "lifecycleContainer", - "summary": "The Window or TabGroup whose Activity lifecycle should be triggered on the proxy.", - "description": "If this property is set to a Window or TabGroup, then the corresponding Activity lifecycle event callbacks\nwill also be called on the proxy. Proxies that require the activity lifecycle will need this property set\nto the appropriate containing Window or TabGroup.\n", - "platforms": [ - { - "since": "3.6.0", - "name": "android" - } - ], - "inherits": "Titanium.Proxy", - "type": [ - "Titanium.UI.Window", - "Titanium.UI.TabGroup" - ] - }, - { - "name": "a", - "summary": "The entry at position [1,1] in the matrix.", - "platforms": [ - { - "since": "0.9", - "name": "iphone" - }, - { - "since": "0.9", - "name": "ipad" - }, - { - "since": "9.2.0", - "name": "macos" - } - ], - "type": "Number" - }, - { - "name": "b", - "summary": "The entry at position [1,2] in the matrix.", - "platforms": [ - { - "since": "0.9", - "name": "iphone" - }, - { - "since": "0.9", - "name": "ipad" - }, - { - "since": "9.2.0", - "name": "macos" - } - ], - "type": "Number" - }, - { - "name": "c", - "summary": "The entry at position [2,1] in the matrix.", - "platforms": [ - { - "since": "0.9", - "name": "iphone" - }, - { - "since": "0.9", - "name": "ipad" - }, - { - "since": "9.2.0", - "name": "macos" - } - ], - "type": "Number" - }, - { - "name": "d", - "summary": "The entry at position [2,2] in the matrix.", - "platforms": [ - { - "since": "0.9", - "name": "iphone" - }, - { - "since": "0.9", - "name": "ipad" - }, - { - "since": "9.2.0", - "name": "macos" - } - ], - "type": "Number" - }, - { - "name": "tx", - "summary": "The entry at position [3,1] in the matrix.", - "platforms": [ - { - "since": "0.9", - "name": "iphone" - }, - { - "since": "0.9", - "name": "ipad" - }, - { - "since": "9.2.0", - "name": "macos" - } - ], - "type": "Number" - }, - { - "name": "ty", - "summary": "The entry at position [3,2] in the matrix.", - "platforms": [ - { - "since": "0.9", - "name": "iphone" - }, - { - "since": "0.9", - "name": "ipad" - }, - { - "since": "9.2.0", - "name": "macos" - } - ], - "type": "Number" - } - ], - "subtype": "proxy" - }, - "MatrixCreationDict": { - "name": "MatrixCreationDict", - "summary": "Simple object passed to to initialize a matrix.", - "extends": "Object", - "platforms": [ - { - "since": "0.8", - "name": "android" - }, - { - "since": "0.8", - "name": "iphone" - }, - { - "since": "0.8", - "name": "ipad" - }, - { - "since": "9.2.0", - "name": "macos" - } - ], - "type": "pseudo", - "editUrl": "https://github.com/appcelerator/titanium_mobile/edit/master/apidoc/Titanium/UI/2DMatrix.yml", - "description": "The matrix is initialized with the specified transforms.\n\nOn iOS, rotation is always performed first, regardless of the order the\nproperties are specified in.\n\nOn Android, specifying both `scale` and `rotate` the same dictionary results\nin an incorrect transformation.\n", - "properties": [ - { - "name": "scale", - "summary": "Scale the matrix by the specified scaling factor. The same scaling factor is used\nfor both horizontal and vertical scaling.\n", - "platforms": [ - { - "since": "0.8", - "name": "android" - }, - { - "since": "0.8", - "name": "iphone" - }, - { - "since": "0.8", - "name": "ipad" - }, - { - "since": "9.2.0", - "name": "macos" - } - ], - "type": "Number", - "default": 1, - "optional": true - }, - { - "name": "rotate", - "summary": "Rotation angle, in degrees. See the [rotate](Titanium.UI.2DMatrix.rotate) method\nfor a discussion of rotation.\n", - "platforms": [ - { - "since": "0.8", - "name": "android" - }, - { - "since": "0.8", - "name": "iphone" - }, - { - "since": "0.8", - "name": "ipad" - }, - { - "since": "9.2.0", - "name": "macos" - } - ], - "type": "Number", - "default": "No rotation.", - "optional": true - }, - { - "name": "anchorPoint", - "summary": "Point to rotate around, specified as a dictionary object with `x` and `y`\nproperties, where { x: 0.5, y: 0.5 } represents the center of whatever is being\nrotated.\n", - "platforms": [ - { - "since": "0.8", - "name": "android" - } - ], - "type": "Point", - "default": "(0.5, 0.5)", - "optional": true - } - ] - }, - "Titanium.UI.3DMatrix": { - "name": "Titanium.UI.3DMatrix", - "summary": "The 3D Matrix is an object for holding values for a 3D affine transform.", - "extends": "Titanium.Proxy", - "platforms": [ - { - "since": "0.9", - "name": "iphone" - }, - { - "since": "0.9", - "name": "ipad" - }, - { - "since": "9.2.0", - "name": "macos" - } - ], - "type": "object", - "editUrl": "https://github.com/appcelerator/titanium_mobile/edit/master/apidoc/Titanium/UI/3DMatrix.yml", - "deprecated": { - "notes": "Use [Titanium.UI.Matrix3D](Titanium.UI.Matrix3D) for improved ES6+ compatibility instead.", - "since": "8.0.0" - }, - "description": "The 3DMatrix is created by . A 3D transform is\nused to rotate, scale, translate, or skew the objects in three-dimensional\nspace. A 3D transform is represented by a 4 by 4 matrix.\n\nYou create an `identity matrix` by creating a 3D Matrix with an empty\nconstructor.\n", - "examples": [ - { - "description": "Apply a 3D Matrix to a Label", - "code": "Move a label through a translation that repositions it from 100px to 200px from the top of\nthe display.\n\n``` js\nvar win = Ti.UI.createWindow({\n backgroundColor: 'white'\n});\n\nvar label = Ti.UI.createLabel({\n font:{fontSize:50},\n text:'Titanium',\n textAlign:'center',\n top: 100\n});\nwin.add(label);\n\nvar button = Ti.UI.createButton({\n title:'Animate',\n bottom:20,\n width:200, height:40\n});\nwin.add(button);\n\nbutton.addEventListener('click', function(){\n var t1 = Ti.UI.create3DMatrix();\n t1 = t1.translate(0, 100, 200);\n t1.m34 = 1.0/-90;\n var a1 = Ti.UI.createAnimation();\n a1.transform = t1;\n a1.duration = 800;\n label.animate(a1);\n});\nwin.open();\n```\n" - } - ], - "methods": [ - { - "name": "addEventListener", - "summary": "Adds the specified callback as an event listener for the named event.", - "platforms": [ - { - "since": "0.9", - "name": "iphone" - }, - { - "since": "0.9", - "name": "ipad" - }, - { - "since": "9.2.0", - "name": "macos" - } - ], - "inherits": "Titanium.Proxy", - "parameters": [ - { - "name": "name", - "summary": "Name of the event.", - "type": "String" - }, - { - "name": "callback", - "summary": "Callback function to invoke when the event is fired.", - "type": "Callback" - } - ], - "returns": { - "type": "void" - } - }, - { - "name": "removeEventListener", - "summary": "Removes the specified callback as an event listener for the named event.", - "description": "Multiple listeners can be registered for the same event, so the\n`callback` parameter is used to determine which listener to remove.\n\nWhen adding a listener, you must save a reference to the callback function\nin order to remove the listener later:\n\n``` js\nvar listener = function() { Ti.API.info(\"Event listener called.\"); }\nwindow.addEventListener('click', listener);\n```\n\nTo remove the listener, pass in a reference to the callback function:\n\n``` js\nwindow.removeEventListener('click', listener);\n```\n", - "platforms": [ - { - "since": "0.9", - "name": "iphone" - }, - { - "since": "0.9", - "name": "ipad" - }, - { - "since": "9.2.0", - "name": "macos" - } - ], - "inherits": "Titanium.Proxy", - "parameters": [ - { - "name": "name", - "summary": "Name of the event.", - "type": "String" - }, - { - "name": "callback", - "summary": "Callback function to remove. Must be the same function passed to `addEventListener`.", - "type": "Callback" - } - ], - "returns": { - "type": "void" - } - }, - { - "name": "fireEvent", - "summary": "Fires a synthesized event to any registered listeners.", - "platforms": [ - { - "since": "0.9", - "name": "iphone" - }, - { - "since": "0.9", - "name": "ipad" - }, - { - "since": "9.2.0", - "name": "macos" - } - ], - "inherits": "Titanium.Proxy", - "parameters": [ - { - "name": "name", - "summary": "Name of the event.", - "type": "String" - }, - { - "name": "event", - "summary": "A dictionary of keys and values to add to the object sent to the listeners.", - "type": "Dictionary", - "optional": true - } - ], - "returns": { - "type": "void" - } - }, - { - "name": "applyProperties", - "summary": "Applies the properties to the proxy.", - "description": "Properties are supplied as a dictionary. Each key-value pair in the object is applied to the proxy such that\nmyproxy[key] = value.\n", - "platforms": [ - { - "since": "3.0.0", - "name": "iphone" - }, - { - "since": "3.0.0", - "name": "ipad" - }, - { - "since": "9.2.0", - "name": "macos" - } - ], - "inherits": "Titanium.Proxy", - "parameters": [ - { - "name": "props", - "summary": "A dictionary of properties to apply.", - "type": "Dictionary" - } - ], - "returns": { - "type": "void" - } - }, - { - "name": "invert", - "summary": "Returns a matrix constructed by inverting this matrix.", - "platforms": [ - { - "since": "0.9", - "name": "iphone" - }, - { - "since": "0.9", - "name": "ipad" - }, - { - "since": "9.2.0", - "name": "macos" - } - ], - "returns": { - "type": "Titanium.UI.3DMatrix" - } - }, - { - "name": "multiply", - "summary": "Returns a matrix constructed by combining two existing matrix.", - "description": "The result of this function is the first matrix multiplied by the second matrix. You might perform\nseveral multiplications in order to create a single matrix that contains the cumulative effects of\nseveral transformations. Note that matrix operations are not commutative - the order in which\nyou concatenate matrices is important. That is, the result of multiplying matrix t1 by matrix t2\ndoes not necessarily equal the result of multiplying matrix t2 by matrix t1.\n", - "platforms": [ - { - "since": "0.9", - "name": "iphone" - }, - { - "since": "0.9", - "name": "ipad" - }, - { - "since": "9.2.0", - "name": "macos" - } - ], - "parameters": [ - { - "name": "t2", - "summary": "Matrix to concatenate to this matrix.", - "type": "Titanium.UI.3DMatrix" - } - ], - "returns": { - "type": "Titanium.UI.3DMatrix" - } - }, - { - "name": "rotate", - "summary": "Returns a matrix constructed by rotating this matrix.", - "platforms": [ - { - "since": "0.9", - "name": "iphone" - }, - { - "since": "0.9", - "name": "ipad" - }, - { - "since": "9.2.0", - "name": "macos" - } - ], - "parameters": [ - { - "name": "angle", - "summary": "The angle, in degrees, by which to rotate the matrix. A positive value specifies counterclockwise rotation and a negative value specifies clockwise rotation.", - "type": "Number" - }, - { - "name": "x", - "summary": "The x part of the vector about which to rotate.", - "type": "Number" - }, - { - "name": "y", - "summary": "The y part of the vector about which to rotate.", - "type": "Number" - }, - { - "name": "z", - "summary": "The z part of the vector about which to rotate.", - "type": "Number" - } - ], - "returns": { - "type": "Titanium.UI.3DMatrix" - } - }, - { - "name": "scale", - "summary": "Returns a matrix constructed by scaling this matrix.", - "platforms": [ - { - "since": "0.9", - "name": "iphone" - }, - { - "since": "0.9", - "name": "ipad" - }, - { - "since": "9.2.0", - "name": "macos" - } - ], - "parameters": [ - { - "name": "sx", - "summary": "The value by which to scale x values of the matrix.", - "type": "Number" - }, - { - "name": "sy", - "summary": "The value by which to scale y values of the matrix.", - "type": "Number" - }, - { - "name": "sz", - "summary": "The value by which to scale z values of the matrix.", - "type": "Number" - } - ], - "returns": { - "type": "Titanium.UI.3DMatrix" - } - }, - { - "name": "translate", - "summary": "Returns a matrix constructed by translating an existing matrix.", - "platforms": [ - { - "since": "0.9", - "name": "iphone" - }, - { - "since": "0.9", - "name": "ipad" - }, - { - "since": "9.2.0", - "name": "macos" - } - ], - "parameters": [ - { - "name": "tx", - "summary": "The value by which to move x values with the matrix.", - "type": "Number" - }, - { - "name": "ty", - "summary": "The value by which to move y values with the matrix.", - "type": "Number" - }, - { - "name": "tz", - "summary": "The value by which to move z values with the matrix.", - "type": "Number" - } - ], - "returns": { - "type": "Titanium.UI.3DMatrix" - } - } - ], - "properties": [ - { - "name": "bubbleParent", - "summary": "Indicates if the proxy will bubble an event to its parent.", - "description": "Some proxies (most commonly views) have a relationship to other proxies, often\nestablished by the add() method. For example, for a button added to a window, a\nclick event on the button would bubble up to the window. Other common parents are\ntable sections to their rows, table views to their sections, and scrollable views\nto their views. Set this property to false to disable the bubbling to the proxy's parent.\n", - "platforms": [ - { - "since": "3.0.0", - "name": "iphone" - }, - { - "since": "3.0.0", - "name": "ipad" - }, - { - "since": "9.2.0", - "name": "macos" - } - ], - "inherits": "Titanium.Proxy", - "type": "Boolean", - "default": true - }, - { - "name": "apiName", - "summary": "The name of the API that this proxy corresponds to.", - "description": "The value of this property is the fully qualified name of the API. For example, [Button](Titanium.UI.Button)\nreturns `Ti.UI.Button`.\n", - "platforms": [ - { - "since": "3.2.0", - "name": "iphone" - }, - { - "since": "3.2.0", - "name": "ipad" - }, - { - "since": "9.2.0", - "name": "macos" - } - ], - "inherits": "Titanium.Proxy", - "type": "String", - "permission": "read-only" - }, - { - "name": "m11", - "summary": "The entry at position [1,1] in the matrix.", - "platforms": [ - { - "since": "0.9", - "name": "iphone" - }, - { - "since": "0.9", - "name": "ipad" - }, - { - "since": "9.2.0", - "name": "macos" - } - ], - "type": "Number" - }, - { - "name": "m12", - "summary": "The entry at position [1,2] in the matrix.", - "platforms": [ - { - "since": "0.9", - "name": "iphone" - }, - { - "since": "0.9", - "name": "ipad" - }, - { - "since": "9.2.0", - "name": "macos" - } - ], - "type": "Number" - }, - { - "name": "m13", - "summary": "The entry at position [1,3] in the matrix.", - "platforms": [ - { - "since": "0.9", - "name": "iphone" - }, - { - "since": "0.9", - "name": "ipad" - }, - { - "since": "9.2.0", - "name": "macos" - } - ], - "type": "Number" - }, - { - "name": "m14", - "summary": "The entry at position [1,4] in the matrix.", - "platforms": [ - { - "since": "0.9", - "name": "iphone" - }, - { - "since": "0.9", - "name": "ipad" - }, - { - "since": "9.2.0", - "name": "macos" - } - ], - "type": "Number" - }, - { - "name": "m21", - "summary": "The entry at position [2,1] in the matrix.", - "platforms": [ - { - "since": "0.9", - "name": "iphone" - }, - { - "since": "0.9", - "name": "ipad" - }, - { - "since": "9.2.0", - "name": "macos" - } - ], - "type": "Number" - }, - { - "name": "m22", - "summary": "The entry at position [2,2] in the matrix.", - "platforms": [ - { - "since": "0.9", - "name": "iphone" - }, - { - "since": "0.9", - "name": "ipad" - }, - { - "since": "9.2.0", - "name": "macos" - } - ], - "type": "Number" - }, - { - "name": "m23", - "summary": "The entry at position [2,3] in the matrix.", - "platforms": [ - { - "since": "0.9", - "name": "iphone" - }, - { - "since": "0.9", - "name": "ipad" - }, - { - "since": "9.2.0", - "name": "macos" - } - ], - "type": "Number" - }, - { - "name": "m24", - "summary": "The entry at position [2,4] in the matrix.", - "platforms": [ - { - "since": "0.9", - "name": "iphone" - }, - { - "since": "0.9", - "name": "ipad" - }, - { - "since": "9.2.0", - "name": "macos" - } - ], - "type": "Number" - }, - { - "name": "m31", - "summary": "The entry at position [3,1] in the matrix.", - "platforms": [ - { - "since": "0.9", - "name": "iphone" - }, - { - "since": "0.9", - "name": "ipad" - }, - { - "since": "9.2.0", - "name": "macos" - } - ], - "type": "Number" - }, - { - "name": "m32", - "summary": "The entry at position [3,2] in the matrix.", - "platforms": [ - { - "since": "0.9", - "name": "iphone" - }, - { - "since": "0.9", - "name": "ipad" - }, - { - "since": "9.2.0", - "name": "macos" - } - ], - "type": "Number" - }, - { - "name": "m33", - "summary": "The entry at position [3,3] in the matrix.", - "platforms": [ - { - "since": "0.9", - "name": "iphone" - }, - { - "since": "0.9", - "name": "ipad" - }, - { - "since": "9.2.0", - "name": "macos" - } - ], - "type": "Number" - }, - { - "name": "m34", - "summary": "The entry at position [3,4] in the matrix.", - "platforms": [ - { - "since": "0.9", - "name": "iphone" - }, - { - "since": "0.9", - "name": "ipad" - }, - { - "since": "9.2.0", - "name": "macos" - } - ], - "type": "Number" - }, - { - "name": "m41", - "summary": "The entry at position [4,1] in the matrix.", - "platforms": [ - { - "since": "0.9", - "name": "iphone" - }, - { - "since": "0.9", - "name": "ipad" - }, - { - "since": "9.2.0", - "name": "macos" - } - ], - "type": "Number" - }, - { - "name": "m42", - "summary": "The entry at position [4,2] in the matrix.", - "platforms": [ - { - "since": "0.9", - "name": "iphone" - }, - { - "since": "0.9", - "name": "ipad" - }, - { - "since": "9.2.0", - "name": "macos" - } - ], - "type": "Number" - }, - { - "name": "m43", - "summary": "The entry at position [4,3] in the matrix.", - "platforms": [ - { - "since": "0.9", - "name": "iphone" - }, - { - "since": "0.9", - "name": "ipad" - }, - { - "since": "9.2.0", - "name": "macos" - } - ], - "type": "Number" - }, - { - "name": "m44", - "summary": "The entry at position [4,4] in the matrix.", - "platforms": [ - { - "since": "0.9", - "name": "iphone" - }, - { - "since": "0.9", - "name": "ipad" - }, - { - "since": "9.2.0", - "name": "macos" - } - ], - "type": "Number" - } - ], - "subtype": "proxy" - }, "Titanium.UI.ActivityIndicator": { "name": "Titanium.UI.ActivityIndicator", "summary": "An activity indicator that lets the user know an action is taking place.", @@ -116763,7 +115427,7 @@ "examples": [ { "description": "Simple Button Example", - "code": "``` js\nvar button = Titanium.UI.createButton({\n title: 'Hello',\n top: 10,\n width: 100,\n height: 50\n});\nbutton.addEventListener('click',function(e)\n{\n Titanium.API.info(\"You clicked the button\");\n});\n```\n" + "code": "``` js\nvar win = Ti.UI.createWindow();\nvar button = Titanium.UI.createButton({\n title: 'Hello',\n top: 10,\n width: 100,\n height: 50\n});\nbutton.addEventListener('click',function(e)\n{\n Titanium.API.info(\"You clicked the button\");\n});\nwin.add(button);\nwin.open();\n```\n" }, { "description": "Alloy XML Markup", @@ -137708,11 +136372,11 @@ }, { "description": "List View with a pullView", - "code": "This sample shows how the [pullView](Titanium.UI.ListView.pullView) property could be\nutilized along with the [pull](Titanium.UI.ListView.pull) and [pullend](Titanium.UI.ListView.pullend) events to\ncreate a refresh control.\n\n``` js\nvar win = Ti.UI.createWindow({backgroundColor: 'white'});\nvar listView = Ti.UI.createListView({height:'90%', top:0});\nvar sections = [];\n\nvar fruitDataSet = [\n {properties: { title: 'Apple'}},\n {properties: { title: 'Banana'}},\n];\nvar fruitSection = Ti.UI.createListSection({ headerTitle: 'Fruits', items: fruitDataSet});\nsections.push(fruitSection);\n\nvar vegDataSet = [\n {properties: { title: 'Carrots'}},\n {properties: { title: 'Potatoes'}},\n];\nvar vegSection = Ti.UI.createListSection({ headerTitle: 'Vegetables', items: vegDataSet});\n\nvar fishDataSet = [\n {properties: { title: 'Cod'}},\n {properties: { title: 'Haddock'}},\n];\nvar fishSection = Ti.UI.createListSection({ headerTitle: 'Fish', items: fishDataSet});\n\nlistView.sections = sections;\nvar refreshCount = 0;\n\nfunction getFormattedDate(){\n var date = new Date();\n return date.getMonth() + '/' + date.getDate() + '/' + date.getFullYear() + ' ' + date.getHours() + ':' + date.getMinutes();\n}\n\nfunction resetPullHeader(){\n actInd.hide();\n imageArrow.transform=Ti.UI.createMatrix2D();\n if (refreshCount < 2) {\n imageArrow.show();\n labelStatus.text = 'Pull down to refresh...';\n labelLastUpdated.text = 'Last Updated: ' + getFormattedDate();\n } else {\n labelStatus.text = 'Nothing To Refresh';\n labelLastUpdated.text = 'Last Updated: ' + getFormattedDate();\n listView.removeEventListener('pull', pullListener);\n listView.removeEventListener('pullend', pullendListener);\n eventStatus.text = 'Removed event listeners.';\n }\n listView.setContentInsets({top:0}, {animated:true});\n}\n\nfunction loadTableData()\n{\n if (refreshCount == 0) {\n listView.appendSection(vegSection);\n } else if (refreshCount == 1) {\n listView.appendSection(fishSection);\n }\n refreshCount ++;\n resetPullHeader();\n}\n\nfunction pullListener(e){\n eventStatus.text = 'EVENT pull FIRED. e.active = '+e.active;\n if (e.active == false) {\n var unrotate = Ti.UI.createMatrix2D();\n imageArrow.animate({transform:unrotate, duration:180});\n labelStatus.text = 'Pull down to refresh...';\n } else {\n var rotate = Ti.UI.createMatrix2D().rotate(180);\n imageArrow.animate({transform:rotate, duration:180});\n if (refreshCount == 0) {\n labelStatus.text = 'Release to get Vegetables...';\n } else {\n labelStatus.text = 'Release to get Fish...';\n }\n }\n}\n\nfunction pullendListener(e){\n eventStatus.text = 'EVENT pullend FIRED.';\n\n if (refreshCount == 0) {\n labelStatus.text = 'Loading Vegetables...';\n } else {\n labelStatus.text = 'Loading Fish...';\n }\n imageArrow.hide();\n actInd.show();\n listView.setContentInsets({top:80}, {animated:true});\n setTimeout(function(){\n loadTableData();\n }, 2000);\n}\n\nvar tableHeader = Ti.UI.createView({\n backgroundColor:'#e2e7ed',\n width:320, height:80\n});\n\nvar border = Ti.UI.createView({\n backgroundColor:'#576c89',\n bottom:0,\n height:2\n});\ntableHeader.add(border);\n\nvar imageArrow = Ti.UI.createImageView({\n image:'arrow.png',\n left:20, bottom:10,\n width:23, height:60\n});\ntableHeader.add(imageArrow);\n\nvar labelStatus = Ti.UI.createLabel({\n color:'#576c89',\n font:{fontSize:13, fontWeight:'bold'},\n text:'Pull down to refresh...',\n textAlign:'center',\n left:55, bottom:30,\n width:200\n});\ntableHeader.add(labelStatus);\n\nvar labelLastUpdated = Ti.UI.createLabel({\n color:'#576c89',\n font:{fontSize:12},\n text:'Last Updated: ' + getFormattedDate(),\n textAlign:'center',\n left:55, bottom:15,\n width:200\n});\ntableHeader.add(labelLastUpdated);\n\nvar actInd = Ti.UI.createActivityIndicator({\n left:20, bottom:13,\n width:30, height:30\n});\ntableHeader.add(actInd);\nlistView.pullView = tableHeader;\nlistView.addEventListener('pull', pullListener);\nlistView.addEventListener('pullend',pullendListener);\n\nvar eventStatus = Ti.UI.createLabel({\n font:{fontSize:13, fontWeight:'bold'},\n text: 'Event data will show here',\n bottom:0,\n height:'10%'\n})\n\nwin.add(listView);\nwin.add(eventStatus);\nwin.open();\n```\n" + "code": "This sample shows how the [pullView](Titanium.UI.ListView.pullView) property could be\nutilized along with the [pull](Titanium.UI.ListView.pull) and [pullend](Titanium.UI.ListView.pullend) events to\ncreate a refresh control.\n\n``` js\nvar win = Ti.UI.createWindow();\nvar listView = Ti.UI.createListView({height:'90%', top:0});\nvar sections = [];\n\nvar fruitDataSet = [\n {properties: { title: 'Apple'}},\n {properties: { title: 'Banana'}},\n];\nvar fruitSection = Ti.UI.createListSection({ headerTitle: 'Fruits', items: fruitDataSet});\nsections.push(fruitSection);\n\nvar vegDataSet = [\n {properties: { title: 'Carrots'}},\n {properties: { title: 'Potatoes'}},\n];\nvar vegSection = Ti.UI.createListSection({ headerTitle: 'Vegetables', items: vegDataSet});\n\nvar fishDataSet = [\n {properties: { title: 'Cod'}},\n {properties: { title: 'Haddock'}},\n];\nvar fishSection = Ti.UI.createListSection({ headerTitle: 'Fish', items: fishDataSet});\n\nlistView.sections = sections;\nvar refreshCount = 0;\n\nfunction getFormattedDate(){\n var date = new Date();\n return date.getMonth() + '/' + date.getDate() + '/' + date.getFullYear() + ' ' + date.getHours() + ':' + date.getMinutes();\n}\n\nfunction resetPullHeader(){\n actInd.hide();\n imageArrow.transform=Ti.UI.createMatrix2D();\n if (refreshCount < 2) {\n imageArrow.show();\n labelStatus.text = 'Pull down to refresh...';\n labelLastUpdated.text = 'Last Updated: ' + getFormattedDate();\n } else {\n labelStatus.text = 'Nothing To Refresh';\n labelLastUpdated.text = 'Last Updated: ' + getFormattedDate();\n listView.removeEventListener('pull', pullListener);\n listView.removeEventListener('pullend', pullendListener);\n eventStatus.text = 'Removed event listeners.';\n }\n listView.setContentInsets({top:0}, {animated:true});\n}\n\nfunction loadTableData()\n{\n if (refreshCount == 0) {\n listView.appendSection(vegSection);\n } else if (refreshCount == 1) {\n listView.appendSection(fishSection);\n }\n refreshCount ++;\n resetPullHeader();\n}\n\nfunction pullListener(e){\n eventStatus.text = 'EVENT pull FIRED. e.active = '+e.active;\n if (e.active == false) {\n var unrotate = Ti.UI.createMatrix2D();\n imageArrow.animate({transform:unrotate, duration:180});\n labelStatus.text = 'Pull down to refresh...';\n } else {\n var rotate = Ti.UI.createMatrix2D().rotate(180);\n imageArrow.animate({transform:rotate, duration:180});\n if (refreshCount == 0) {\n labelStatus.text = 'Release to get Vegetables...';\n } else {\n labelStatus.text = 'Release to get Fish...';\n }\n }\n}\n\nfunction pullendListener(e){\n eventStatus.text = 'EVENT pullend FIRED.';\n\n if (refreshCount == 0) {\n labelStatus.text = 'Loading Vegetables...';\n } else {\n labelStatus.text = 'Loading Fish...';\n }\n imageArrow.hide();\n actInd.show();\n listView.setContentInsets({top:80}, {animated:true});\n setTimeout(function(){\n loadTableData();\n }, 2000);\n}\n\nvar tableHeader = Ti.UI.createView({\n backgroundColor:'#e2e7ed',\n width:320, height:80\n});\n\nvar border = Ti.UI.createView({\n backgroundColor:'#576c89',\n bottom:0,\n height:2\n});\ntableHeader.add(border);\n\nvar imageArrow = Ti.UI.createImageView({\n image:'arrow.png',\n left:20, bottom:10,\n width:23, height:60\n});\ntableHeader.add(imageArrow);\n\nvar labelStatus = Ti.UI.createLabel({\n color:'#576c89',\n font:{fontSize:13, fontWeight:'bold'},\n text:'Pull down to refresh...',\n textAlign:'center',\n left:55, bottom:30,\n width:200\n});\ntableHeader.add(labelStatus);\n\nvar labelLastUpdated = Ti.UI.createLabel({\n color:'#576c89',\n font:{fontSize:12},\n text:'Last Updated: ' + getFormattedDate(),\n textAlign:'center',\n left:55, bottom:15,\n width:200\n});\ntableHeader.add(labelLastUpdated);\n\nvar actInd = Ti.UI.createActivityIndicator({\n left:20, bottom:13,\n width:30, height:30\n});\ntableHeader.add(actInd);\nlistView.pullView = tableHeader;\nlistView.addEventListener('pull', pullListener);\nlistView.addEventListener('pullend',pullendListener);\n\nvar eventStatus = Ti.UI.createLabel({\n font:{fontSize:13, fontWeight:'bold'},\n text: 'Event data will show here',\n bottom:0,\n height:'10%'\n})\n\nwin.add(listView);\nwin.add(eventStatus);\nwin.open();\n```\n" }, { "description": "Alloy XML Markup", - "code": "'List View with Custom Item Template' as an Alloy view. List view markup is supported in\nAlloy 1.2.0 and later.\n\n`app/views/index.xml`:\n``` xml\n\n \n \n\n \n\n \n\n \n\n \n \n \n\n \n\n \n\n \n\n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n\n```\n\n`app/styles/index.tss`:\n``` js\n\"#icon\" : {\n width: '50dp', height: '50dp', left: 0\n},\n\"#title\" : {\n color: 'black',\n font: { fontFamily:'Arial', fontSize: '20dp', fontWeight:'bold' },\n left: '60dp', top: 0\n},\n\"#subtitle\" : {\n color: 'gray',\n font: { fontFamily:'Arial', fontSize: '14dp' },\n left: '60dp', top: '25dp'\n}\n```\n" + "code": "'List View with Custom Item Template' as an Alloy view. List view markup is supported in\nAlloy 1.2.0 and later.\n\n`app/views/index.xml`:\n``` xml\n\n \n \n\n \n\n \n\n \n\n \n \n \n\n \n\n \n\n \n\n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n\n```\n\n`app/styles/index.tss`:\n``` js\n\"#icon\" : {\n width: '50dp', height: '50dp', left: 0\n},\n\"#title\" : {\n color: 'black',\n font: { fontFamily:'Arial', fontSize: '20dp', fontWeight:'bold' },\n left: '60dp', top: 0\n},\n\"#subtitle\" : {\n color: 'gray',\n font: { fontFamily:'Arial', fontSize: '14dp' },\n left: '60dp', top: '25dp'\n}\n```\n" }, { "description": "Alloy example of ListView properties", @@ -145061,7 +143725,7 @@ "examples": [ { "description": "Apply a 2D Matrix to a Label", - "code": "The following uses a 2D matrix to translate a label in the y direction.\n\n``` js\nvar win = Ti.UI.createWindow({\n backgroundColor: 'white'\n});\n\nvar label = Ti.UI.createLabel({\n font: { fontSize: 50 },\n text: 'Titanium',\n textAlign: 'center',\n top: 100\n});\nwin.add(label);\n\nvar button = Ti.UI.createButton({\n title: 'Animate',\n bottom: 20,\n width: 200,\n height: 40\n});\nwin.add(button);\n\nbutton.addEventListener('click', function() {\n var t1 = Ti.UI.createMatrix2D();\n t1 = t1.translate(0, 300);\n var a1 = Ti.UI.createAnimation();\n a1.transform = t1;\n a1.duration = 800;\n label.animate(a1);\n});\nwin.open();\n```\n" + "code": "The following uses a 2D matrix to translate a label in the y direction.\n\n``` js\nvar win = Ti.UI.createWindow();\n\nvar label = Ti.UI.createLabel({\n font: { fontSize: 50 },\n text: 'Titanium',\n textAlign: 'center',\n top: 100\n});\nwin.add(label);\n\nvar button = Ti.UI.createButton({\n title: 'Animate',\n bottom: 20,\n width: 200,\n height: 40\n});\nwin.add(button);\n\nbutton.addEventListener('click', function() {\n var t1 = Ti.UI.createMatrix2D();\n t1 = t1.translate(0, 300);\n var a1 = Ti.UI.createAnimation();\n a1.transform = t1;\n a1.duration = 800;\n label.animate(a1);\n});\nwin.open();\n```\n" } ], "methods": [ @@ -145701,7 +144365,7 @@ "examples": [ { "description": "Apply a 3D Matrix to a Label", - "code": "Move a label through a translation that repositions it from 100px to 200px from the top of\nthe display.\n\n``` js\nvar win = Ti.UI.createWindow({\n backgroundColor: 'white'\n});\n\nvar label = Ti.UI.createLabel({\n font: { fontSize : 50 },\n text: 'Titanium',\n textAlign: 'center',\n top: 100\n});\nwin.add(label);\n\nvar button = Ti.UI.createButton({\n title: 'Animate',\n bottom: 20,\n width: 200,\n height: 40\n});\nwin.add(button);\n\nbutton.addEventListener('click', function() {\n var t1 = Ti.UI.createMatrix3D();\n t1 = t1.translate(0, 100, 200);\n t1.m34 = 1.0 / -90.0;\n var a1 = Ti.UI.createAnimation();\n a1.transform = t1;\n a1.duration = 800;\n label.animate(a1);\n});\nwin.open();\n```\n" + "code": "Move a label through a translation that repositions it from 100px to 200px from the top of\nthe display.\n\n``` js\nvar win = Ti.UI.createWindow();\n\nvar label = Ti.UI.createLabel({\n font: { fontSize : 50 },\n text: 'Titanium',\n textAlign: 'center',\n top: 100\n});\nwin.add(label);\n\nvar button = Ti.UI.createButton({\n title: 'Animate',\n bottom: 20,\n width: 200,\n height: 40\n});\nwin.add(button);\n\nbutton.addEventListener('click', function() {\n var t1 = Ti.UI.createMatrix3D();\n t1 = t1.translate(0, 100, 200);\n t1.m34 = 1.0 / -90.0;\n var a1 = Ti.UI.createAnimation();\n a1.transform = t1;\n a1.duration = 800;\n label.animate(a1);\n});\nwin.open();\n```\n" } ], "methods": [ @@ -167253,11 +165917,11 @@ "examples": [ { "description": "Simple Scroll View", - "code": "Create a scroll view with content.\n\n``` js\nvar win = Ti.UI.createWindow({\n backgroundColor: 'white',\n exitOnClose: true,\n fullscreen: false,\n title: 'ScrollView Demo'\n});\n\nvar scrollView = Ti.UI.createScrollView({\n showVerticalScrollIndicator: true,\n showHorizontalScrollIndicator: true,\n height: '80%',\n width: '80%'\n});\nvar view = Ti.UI.createView({\n backgroundColor:'#336699',\n borderRadius: 10,\n top: 10,\n height: 2000,\n width: 1000\n});\nscrollView.add(view);\nwin.add(scrollView);\nwin.open();\n```\n" + "code": "Create a scroll view with content.\n\n``` js\nvar win = Ti.UI.createWindow({\n exitOnClose: true,\n fullscreen: false,\n title: 'ScrollView Demo'\n});\n\nvar scrollView = Ti.UI.createScrollView({\n showVerticalScrollIndicator: true,\n showHorizontalScrollIndicator: true,\n height: '80%',\n width: '80%'\n});\nvar view = Ti.UI.createView({\n backgroundColor:'#336699',\n borderRadius: 10,\n top: 10,\n height: 2000,\n width: 1000\n});\nscrollView.add(view);\nwin.add(scrollView);\nwin.open();\n```\n" }, { "description": "Scroll View as a Table View", - "code": "Create a scroll view that contains a set of views in a layout to resemble a table view with\nrows. This approach can mitigate the native Android issue described in the \"TextFields in\nTables with SOFT_INPUT_ADJUST_PAN\" section of .\n\n``` js\nvar win = Ti.UI.createWindow({\n backgroundColor:'white'\n});\n\nif (Ti.UI.Android){\n win.windowSoftInputMode = Ti.UI.Android.SOFT_INPUT_ADJUST_PAN;\n}\n\nfunction createRow(i) {\n var row = Ti.UI.createView({\n backgroundColor: 'white',\n borderColor: '#bbb',\n borderWidth: 1,\n width:'100%', height: 70,\n top: 0, left: 0\n });\n var inputTextField = Ti.UI.createTextField({\n hintText: 'Enter value ' + i,\n keyboardType: Ti.UI.KEYBOARD_NUMBERS_PUNCTUATION,\n top: 10, left: '10%',\n width: '80%', height: 60\n });\n row.add(inputTextField);\n return row;\n}\n\nvar scrollView = Ti.UI.createScrollView({\n bottom:120,\n layout: 'vertical'\n});\n\nfor(var i = 0; i <= 20; i++){\nvar row = createRow(i);\n scrollView.add(row);\n}\nwin.add(scrollView);\n\nvar label = Ti.UI.createLabel({\n backgroundColor:'darkgray',\n text: 'Your advert here',\n textAlign: 'center',\n bottom:0,\n width: Titanium.UI.FILL,\n height:100\n});\nwin.add(label);\nwin.open();\n```\n" + "code": "Create a scroll view that contains a set of views in a layout to resemble a table view with\nrows. This approach can mitigate the native Android issue described in the \"TextFields in\nTables with SOFT_INPUT_ADJUST_PAN\" section of .\n\n``` js\nvar win = Ti.UI.createWindow();\n\nif (Ti.UI.Android){\n win.windowSoftInputMode = Ti.UI.Android.SOFT_INPUT_ADJUST_PAN;\n}\n\nfunction createRow(i) {\n var row = Ti.UI.createView({\n backgroundColor: 'white',\n borderColor: '#bbb',\n borderWidth: 1,\n width:'100%', height: 70,\n top: 0, left: 0\n });\n var inputTextField = Ti.UI.createTextField({\n hintText: 'Enter value ' + i,\n keyboardType: Ti.UI.KEYBOARD_NUMBERS_PUNCTUATION,\n top: 10, left: '10%',\n width: '80%', height: 60\n });\n row.add(inputTextField);\n return row;\n}\n\nvar scrollView = Ti.UI.createScrollView({\n bottom:120,\n layout: 'vertical'\n});\n\nfor(var i = 0; i <= 20; i++){\nvar row = createRow(i);\n scrollView.add(row);\n}\nwin.add(scrollView);\n\nvar label = Ti.UI.createLabel({\n backgroundColor:'darkgray',\n text: 'Your advert here',\n textAlign: 'center',\n bottom:0,\n width: Titanium.UI.FILL,\n height:100\n});\nwin.add(label);\nwin.open();\n```\n" }, { "description": "Alloy XML Markup", @@ -170641,7 +169305,7 @@ }, { "description": "Simple Scrollable View with 2 Zoomable Images", - "code": "Create two scroll views, each containing an image view, and assign them as pages to a\nscrollable view.\n\n``` js\nvar img1 = Ti.UI.createImageView({\n image:'http://upload.wikimedia.org/wikipedia/commons/thumb/e/ec/' +\n 'Mona_Lisa%2C_by_Leonardo_da_Vinci%2C_from_C2RMF_retouched.jpg/' +\n '402px-Mona_Lisa%2C_by_Leonardo_da_Vinci%2C_from_C2RMF_retouched.jpg'\n});\nvar img1Wrapper = Ti.UI.createScrollView({\n maxZoomScale:4.0,\n});\nimg1Wrapper.add(img1);\n\nvar img2 = Ti.UI.createImageView({\n image:'http://www.nasa.gov/images/content/' +\n '616903main_rover_comparison1600_1600-1200.jpg'\n});\nvar img2Wrapper = Ti.UI.createScrollView({\n maxZoomScale:4.0,\n});\nimg2Wrapper.add(img2);\nvar photosView = Ti.UI.createScrollableView({\n showPagingControl:true,\n views:[img1Wrapper, img2Wrapper]\n});\nwin.add(photosView);\n```\n" + "code": "Create two scroll views, each containing an image view, and assign them as pages to a\nscrollable view.\n\n``` js\nvar win = Ti.UI.createWindow();\nvar img1 = Ti.UI.createImageView({\n image:'http://upload.wikimedia.org/wikipedia/commons/thumb/e/ec/' +\n 'Mona_Lisa%2C_by_Leonardo_da_Vinci%2C_from_C2RMF_retouched.jpg/' +\n '402px-Mona_Lisa%2C_by_Leonardo_da_Vinci%2C_from_C2RMF_retouched.jpg'\n});\nvar img1Wrapper = Ti.UI.createScrollView({\n maxZoomScale:4.0,\n});\nimg1Wrapper.add(img1);\n\nvar img2 = Ti.UI.createImageView({\n image:'http://www.nasa.gov/images/content/' +\n '616903main_rover_comparison1600_1600-1200.jpg'\n});\nvar img2Wrapper = Ti.UI.createScrollView({\n maxZoomScale:4.0,\n});\nimg2Wrapper.add(img2);\nvar photosView = Ti.UI.createScrollableView({\n showPagingControl:true,\n views:[img1Wrapper, img2Wrapper]\n});\nwin.add(photosView);\n```\n" }, { "description": "Scrollable View with multiple visible views", @@ -194369,7 +193033,7 @@ ], "type": "object", "editUrl": "https://github.com/appcelerator/titanium_mobile/edit/master/apidoc/Titanium/UI/TableView.yml", - "description": "| Android | iOS |\n| ------- | --- |\n| ![Android](./tableview_android.png) | ![iOS](./tableview_ios.png) |\n\nA `TableView` object is a container for [TableViewSection](Titanium.UI.TableViewSection)\nobjects that are, in turn, containers for [TableViewRow](Titanium.UI.TableViewRow) objects.\n\nUse the method or **``** Alloy element to create a `TableView`.\n\nAlso see the [TableViews guide](https://titaniumsdk.com/guide/Titanium_SDK/Titanium_SDK_How-tos/User_Interface_Deep_Dives/TableViews.html).\n\n#### Creating Tables\n\nThere are few approaches to creating and using `TableView` object.\n\nThe simplest approach is to pass dictionaries of `TableViewRow` properties, such as\n[backgroundColor](Titanium.UI.TableViewRow.backgroundColor),\n[color](Titanium.UI.TableViewRow.color), and [title](Titanium.UI.TableViewRow.title), to the\n[createTableView](Titanium.UI.createTableView) method, which causes the rows to be implictly\ncreated, added to a single [TableViewSection](Titanium.UI.TableViewSection), and then added to\nthe `TableView`. Refer to the \"Simple Table View with Basic Rows\" example.\n\nFor more control over the layout of each row, however, [TableViewRow](Titanium.UI.TableViewRow)\nobjects can be created explicitly using the method. Child views,\nsuch as [labels](Titanium.UI.Label), [images](Titanium.UI.ImageView), and\n[buttons](Titanium.UI.Button), may be added to each row. When one or more\n[rows](Titanium.UI.TableViewRow) are added to the table view,\na single [TableViewSection](Titanium.UI.TableViewSection) is automatically created to hold the\nrows. See the \"Table View with Composite Layout\" example.\n\nLastly, sets of rows may be explicitly created and added to a their own\n[TableViewSection](Titanium.UI.TableViewSection) objects, which are then added to a `TableView`,\nto enable the rows to be organized. Headers and footers titles or views must be configured\nin order for the sections to be visible.\n\n#### Tables and Scroll Views\n\nAs a table view inherently scrolls, it creates a very poor user experience when one contains\nother scrolling views, such as a [ScrollableView](Titanium.UI.ScrollableView) or\n[TextArea](Titanium.UI.TextArea). Thus, this layout is strongly discouraged.\n\n#### TextFields in Tables with SOFT_INPUT_ADJUST_PAN (Android)\n\nWhen a [TextField](Titanium.UI.TextField) is placed in a row near the bottom of a `TableView`,\nin a window that is configured with\n[SOFT_INPUT_ADJUST_PAN](Titanium.UI.Android.SOFT_INPUT_ADJUST_PAN), it is expected for the\ntext field to automatically move to a visible position after it is focused and the software\nkeyboard displayed. However, due to a known problem caused by native Android's ListView behavior,\nthe keyboard is likely to completely obscure the text field.\n\nTo mitigate this, a `ScrollView` may be used instead of a table view, as demonstrated in the\n[ScrollView](Titanium.UI.ScrollView), \"Scroll View as a Table View\", example.\n\n#### Known Issues\n\nThere are known issues with the `sections` property and associated methods added in\nRelease 3.0:\n\n* On iOS, the first two arguments to the `updateSection` method are reversed.\n ([TIMOB-12625](https://jira-archive.titaniumsdk.com/TIMOB-12625)). This issue has been\n addressed in Release 3.3.0 of the Titanium SDK\n\n#### Row Editing and Moving Modes\n\nTable views have an `editing` and a `moving` mode that may be activated to using their\nrespective [editing](Titanium.UI.TableView.editing) and [moving](Titanium.UI.TableView.moving)\nproperties. These allow rows to be deleted or re-ordered by the user, depending on each row's\n[editable](Titanium.UI.TableViewRow.editable) and [moveable](Titanium.UI.TableViewRow.moveable)\nproperty that are either explicitly set or inherited from the table.\n\nThere are two UI controls available for deleting table view rows, depending on the combination\nof editing and moving modes enabled:\n\n* \"red icon delete\" - a circular red icon is displayed on the left-hand side of a row, which\nreveals a delete button on the right-hand side of that row when clicked.\n* \"swipe delete\" - without either of the table editing or moving modes enabled, a left or right\nswipe gesture on a row reveals a delete button on the right-hand side of the row.\n\nNote that because the operating system handles the functionality of the swipe delete, the OS will\ncapture swipe events and not bubble the event to Titanium listeners. As such, if you rely on\nswipe events, you must not set editing to true on such rows, and simulate the functionality you\nneed.\n\nWhen `editable` and `moveable` properties are set on the table view, they are known as `inherited`,\nwhereas when set on a row, they are known as `explicit`. As their resulting behavior may not\nfollow their literal meaning, depending on the combination of `editing` and `moving` modes that\nare enabled, a detailed description of the behavior follows.\n\nWith `editing:false` and `moving:true`:\n\n* For red icon delete and swipe delete, inherited and explicit `editable` properties may be set.\n* Inherited `moveable` property is always `true`. Explicit `moveable` property may be set.\n\nWith `editing:true` and `moving:false`:\n\n* For red icon delete and swipe delete, inherited `editable` property is always `true`. Explicit\n`editable` property may be set.\n* Inherited and explicit `moveable` properties may be set.\n\nWith `editing:false` and `moving: false`:\n\n* For red icon delete, inherited and explicit `editable` properties always `false`. For\nswipe delete, inherited and explicit `editable` properties may be set.\n* Inherited `moveable` property is always `false`.\n\nWith `editing:true` and `moving:true`:\n\n* For red icon delete and swipe delete, inherited and explicit `editable` properties may be set.\n* Inherited `moveable` property is always `true`. Explicit `moveable` property may be set.\n", + "description": "| Android | iOS |\n| ------- | --- |\n| ![Android](./tableview_android.png) | ![iOS](./tableview_ios.png) |\n\nA `TableView` object is a container for [TableViewSection](Titanium.UI.TableViewSection)\nobjects that are, in turn, containers for [TableViewRow](Titanium.UI.TableViewRow) objects.\n\nUse the method or **``** Alloy element to create a `TableView`.\n\nAlso see the [TableViews guide](https://titaniumsdk.com/guide/Titanium_SDK/Titanium_SDK_How-tos/User_Interface_Deep_Dives/TableViews.html).\n\n#### Creating Tables\n\nThere are few approaches to creating and using `TableView` object.\n\nThe simplest approach is to pass dictionaries of `TableViewRow` properties, such as\n[backgroundColor](Titanium.UI.TableViewRow.backgroundColor),\n[color](Titanium.UI.TableViewRow.color), and [title](Titanium.UI.TableViewRow.title), to the\n[createTableView](Titanium.UI.createTableView) method, which causes the rows to be implictly\ncreated, added to a single [TableViewSection](Titanium.UI.TableViewSection), and then added to\nthe `TableView`. Refer to the \"Simple Table View with Basic Rows\" example.\n\nFor more control over the layout of each row, however, [TableViewRow](Titanium.UI.TableViewRow)\nobjects can be created explicitly using the method. Child views,\nsuch as [labels](Titanium.UI.Label), [images](Titanium.UI.ImageView), and\n[buttons](Titanium.UI.Button), may be added to each row. When one or more\n[rows](Titanium.UI.TableViewRow) are added to the table view,\na single [TableViewSection](Titanium.UI.TableViewSection) is automatically created to hold the\nrows. See the \"Table View with Composite Layout\" example.\n\nLastly, sets of rows may be explicitly created and added to a their own\n[TableViewSection](Titanium.UI.TableViewSection) objects, which are then added to a `TableView`,\nto enable the rows to be organized. Headers and footers titles or views must be configured\nin order for the sections to be visible.\n\n#### Tables and Scroll Views\n\nAs a table view inherently scrolls, it creates a very poor user experience when one contains\nother scrolling views, such as a [ScrollableView](Titanium.UI.ScrollableView) or\n[TextArea](Titanium.UI.TextArea). Thus, this layout is strongly discouraged.\n\n#### TextFields in Tables with SOFT_INPUT_ADJUST_PAN (Android)\n\nWhen a [TextField](Titanium.UI.TextField) is placed in a row near the bottom of a `TableView`,\nin a window that is configured with\n[SOFT_INPUT_ADJUST_PAN](Titanium.UI.Android.SOFT_INPUT_ADJUST_PAN), it is expected for the\ntext field to automatically move to a visible position after it is focused and the software\nkeyboard displayed. However, due to a known problem caused by native Android's ListView behavior,\nthe keyboard is likely to completely obscure the text field.\n\nTo mitigate this, a `ScrollView` may be used instead of a table view, as demonstrated in the\n[ScrollView](Titanium.UI.ScrollView), \"Scroll View as a Table View\", example.\n\n#### Row Editing and Moving Modes\n\nTable views have an `editing` and a `moving` mode that may be activated to using their\nrespective [editing](Titanium.UI.TableView.editing) and [moving](Titanium.UI.TableView.moving)\nproperties. These allow rows to be deleted or re-ordered by the user, depending on each row's\n[editable](Titanium.UI.TableViewRow.editable) and [moveable](Titanium.UI.TableViewRow.moveable)\nproperty that are either explicitly set or inherited from the table.\n\nThere are two UI controls available for deleting table view rows, depending on the combination\nof editing and moving modes enabled:\n\n* \"red icon delete\" - a circular red icon is displayed on the left-hand side of a row, which\nreveals a delete button on the right-hand side of that row when clicked.\n* \"swipe delete\" - without either of the table editing or moving modes enabled, a left or right\nswipe gesture on a row reveals a delete button on the right-hand side of the row.\n\nNote that because the operating system handles the functionality of the swipe delete, the OS will\ncapture swipe events and not bubble the event to Titanium listeners. As such, if you rely on\nswipe events, you must not set editing to true on such rows, and simulate the functionality you\nneed.\n\nWhen `editable` and `moveable` properties are set on the table view, they are known as `inherited`,\nwhereas when set on a row, they are known as `explicit`. As their resulting behavior may not\nfollow their literal meaning, depending on the combination of `editing` and `moving` modes that\nare enabled, a detailed description of the behavior follows.\n\nWith `editing:false` and `moving:true`:\n\n* For red icon delete and swipe delete, inherited and explicit `editable` properties may be set.\n* Inherited `moveable` property is always `true`. Explicit `moveable` property may be set.\n\nWith `editing:true` and `moving:false`:\n\n* For red icon delete and swipe delete, inherited `editable` property is always `true`. Explicit\n`editable` property may be set.\n* Inherited and explicit `moveable` properties may be set.\n\nWith `editing:false` and `moving: false`:\n\n* For red icon delete, inherited and explicit `editable` properties always `false`. For\nswipe delete, inherited and explicit `editable` properties may be set.\n* Inherited `moveable` property is always `false`.\n\nWith `editing:true` and `moving:true`:\n\n* For red icon delete and swipe delete, inherited and explicit `editable` properties may be set.\n* Inherited `moveable` property is always `true`. Explicit `moveable` property may be set.\n", "events": [ { "name": "click", @@ -195882,7 +194546,7 @@ }, { "description": "Table View Sections", - "code": "Create a table with three sections, each with two rows. Add two sections to the table\nbefore and one after it is rendered. This sample only works on Release 3.0 and later.\n\n``` js\nTi.UI.backgroundColor = 'white';\nvar win = Ti.UI.createWindow();\n\nvar sectionFruit = Ti.UI.createTableViewSection({ headerTitle: 'Fruit' });\nsectionFruit.add(Ti.UI.createTableViewRow({ title: 'Apples' }));\nsectionFruit.add(Ti.UI.createTableViewRow({ title: 'Bananas' }));\n\nvar sectionVeg = Ti.UI.createTableViewSection({ headerTitle: 'Vegetables' });\nsectionVeg.add(Ti.UI.createTableViewRow({ title: 'Carrots' }));\nsectionVeg.add(Ti.UI.createTableViewRow({ title: 'Potatoes' }));\n\nvar table = Ti.UI.createTableView({\n data: [sectionFruit, sectionVeg]\n});\n\nwin.add(table);\nwin.open();\n\nvar sectionFish = Ti.UI.createTableViewSection({ headerTitle: 'Fish' });\nsectionFish.add(Ti.UI.createTableViewRow({ title: 'Cod' }));\nsectionFish.add(Ti.UI.createTableViewRow({ title: 'Haddock' }));\n\n// Prior to Release 3.0, you can only add and remove sections by setting the data property\n// table.data = [ sectionFish, sectionFruit, sectionVeg ];\n// Due to a known issue, TIMOB-12616, the section access methods and sections\n// property should not be used on iOS with Release 3.0.x.\ntable.insertSectionBefore(0, sectionFish);\n```\n" + "code": "Create a table with three sections, each with two rows. Add two sections to the table\nbefore and one after it is rendered. This sample only works on Release 3.0 and later.\n\n``` js\nTi.UI.backgroundColor = 'white';\nvar win = Ti.UI.createWindow();\n\nvar sectionFruit = Ti.UI.createTableViewSection({ headerTitle: 'Fruit' });\nsectionFruit.add(Ti.UI.createTableViewRow({ title: 'Apples' }));\nsectionFruit.add(Ti.UI.createTableViewRow({ title: 'Bananas' }));\n\nvar sectionVeg = Ti.UI.createTableViewSection({ headerTitle: 'Vegetables' });\nsectionVeg.add(Ti.UI.createTableViewRow({ title: 'Carrots' }));\nsectionVeg.add(Ti.UI.createTableViewRow({ title: 'Potatoes' }));\n\nvar table = Ti.UI.createTableView({\n data: [sectionFruit, sectionVeg]\n});\n\nwin.add(table);\nwin.open();\n\nvar sectionFish = Ti.UI.createTableViewSection({ headerTitle: 'Fish' });\nsectionFish.add(Ti.UI.createTableViewRow({ title: 'Cod' }));\nsectionFish.add(Ti.UI.createTableViewRow({ title: 'Haddock' }));\n\ntable.insertSectionBefore(0, sectionFish);\n```\n" }, { "description": "Table View with Composite Layout", @@ -195890,7 +194554,7 @@ }, { "description": "Alloy XML Markup", - "code": "Previous table view sections example as an Alloy view.\n\n``` xml\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n```\n" + "code": "Previous table view sections example as an Alloy view.\n\n``` xml\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n```\n" } ], "methods": [ @@ -205243,7 +203907,7 @@ "examples": [ { "description": "Basic Text Area with Customizations", - "code": "This example creates a highly customized text area.\n\n``` js\nvar win = Ti.UI.createWindow({\n backgroundColor: 'white'\n});\nvar textArea = Ti.UI.createTextArea({\n borderWidth: 2,\n borderColor: '#bbb',\n borderRadius: 5,\n color: '#888',\n font: {fontSize:20, fontWeight:'bold'},\n keyboardType: Ti.UI.KEYBOARD_NUMBER_PAD,\n returnKeyType: Ti.UI.RETURNKEY_GO,\n textAlign: 'left',\n value: 'I am a textarea',\n top: 60,\n width: 300, height : 70\n});\nwin.add(textArea);\nwin.open();\n```\n" + "code": "This example creates a highly customized text area.\n\n``` js\nvar win = Ti.UI.createWindow();\nvar textArea = Ti.UI.createTextArea({\n borderWidth: 2,\n borderColor: '#bbb',\n borderRadius: 5,\n color: '#888',\n font: {fontSize:20, fontWeight:'bold'},\n keyboardType: Ti.UI.KEYBOARD_NUMBER_PAD,\n returnKeyType: Ti.UI.RETURNKEY_GO,\n textAlign: 'left',\n value: 'I am a textarea',\n top: 60,\n width: 300, height : 70\n});\nwin.add(textArea);\nwin.open();\n```\n" }, { "description": "Text Area with Custom Keyboard Toolbar (iOS)", @@ -205251,7 +203915,7 @@ }, { "description": "Alloy XML Markup", - "code": "Previous basic text area with customizations example as an Alloy view.\n\n``` xml\n\n \n