Skip to content
Titanium SDK
Version12.5.0

You are reading 12.5.0. See this page in 13.4.1.

Titanium.UI.TableView

viewAndroidiPhoneiPadmacOSsince 0.8

Extends Titanium.UI.ViewTitanium.Proxy

A table view is used to present information, organized in sections and rows, in a vertically-scrolling view.

Android iOS
Android iOS

A TableView object is a container for TableViewSection objects that are, in turn, containers for TableViewRow objects.

Use the Titanium.UI.createTableView method or <TableView> Alloy element to create a TableView.

Also see the TableViews guide.

Creating Tables

There are few approaches to creating and using TableView object.

The simplest approach is to pass dictionaries of TableViewRow properties, such as backgroundColor, color, and title, to the createTableView method, which causes the rows to be implictly created, added to a single TableViewSection, and then added to the TableView. Refer to the "Simple Table View with Basic Rows" example.

For more control over the layout of each row, however, TableViewRow objects can be created explicitly using the Titanium.UI.createTableViewRow method. Child views, such as labels, images, and buttons, may be added to each row. When one or more rows are added to the table view, a single TableViewSection is automatically created to hold the rows. See the "Table View with Composite Layout" example.

Lastly, sets of rows may be explicitly created and added to a their own TableViewSection objects, which are then added to a TableView, to enable the rows to be organized. Headers and footers titles or views must be configured in order for the sections to be visible.

Tables and Scroll Views

As a table view inherently scrolls, it creates a very poor user experience when one contains other scrolling views, such as a ScrollableView or TextArea. Thus, this layout is strongly discouraged.

TextFields in Tables with SOFT_INPUT_ADJUST_PAN (Android)

When a TextField is placed in a row near the bottom of a TableView, in a window that is configured with SOFT_INPUT_ADJUST_PAN, it is expected for the text field to automatically move to a visible position after it is focused and the software keyboard displayed. However, due to a known problem caused by native Android's ListView behavior, the keyboard is likely to completely obscure the text field.

To mitigate this, a ScrollView may be used instead of a table view, as demonstrated in the ScrollView, "Scroll View as a Table View", example.

Row Editing and Moving Modes

Table views have an editing and a moving mode that may be activated to using their respective editing and moving properties. These allow rows to be deleted or re-ordered by the user, depending on each row's editable and moveable property that are either explicitly set or inherited from the table.

There are two UI controls available for deleting table view rows, depending on the combination of editing and moving modes enabled:

  • "red icon delete" - a circular red icon is displayed on the left-hand side of a row, which reveals a delete button on the right-hand side of that row when clicked.
  • "swipe delete" - without either of the table editing or moving modes enabled, a left or right swipe gesture on a row reveals a delete button on the right-hand side of the row.

Note that because the operating system handles the functionality of the swipe delete, the OS will capture swipe events and not bubble the event to Titanium listeners. As such, if you rely on swipe events, you must not set editing to true on such rows, and simulate the functionality you need.

When editable and moveable properties are set on the table view, they are known as inherited, whereas when set on a row, they are known as explicit. As their resulting behavior may not follow their literal meaning, depending on the combination of editing and moving modes that are enabled, a detailed description of the behavior follows.

With editing:false and moving:true:

  • For red icon delete and swipe delete, inherited and explicit editable properties may be set.
  • Inherited moveable property is always true. Explicit moveable property may be set.

With editing:true and moving:false:

  • For red icon delete and swipe delete, inherited editable property is always true. Explicit editable property may be set.
  • Inherited and explicit moveable properties may be set.

With editing:false and moving: false:

  • For red icon delete, inherited and explicit editable properties always false. For swipe delete, inherited and explicit editable properties may be set.
  • Inherited moveable property is always false.

With editing:true and moving:true:

  • For red icon delete and swipe delete, inherited and explicit editable properties may be set.
  • Inherited moveable property is always true. Explicit moveable property may be set.

Examples

Simple Table View

Create a basic table view.

Ti.UI.backgroundColor = 'white';
var win = Ti.UI.createWindow();

var tableData = [ {title: 'Apples'}, {title: 'Bananas'}, {title: 'Carrots'}, {title: 'Potatoes'} ];

var table = Ti.UI.createTableView({
  data: tableData
});
win.add(table);
win.open();

Table View Sections

Create a table with three sections, each with two rows. Add two sections to the table before and one after it is rendered. This sample only works on Release 3.0 and later.

Ti.UI.backgroundColor = 'white';
var win = Ti.UI.createWindow();

var sectionFruit = Ti.UI.createTableViewSection({ headerTitle: 'Fruit' });
sectionFruit.add(Ti.UI.createTableViewRow({ title: 'Apples' }));
sectionFruit.add(Ti.UI.createTableViewRow({ title: 'Bananas' }));

var sectionVeg = Ti.UI.createTableViewSection({ headerTitle: 'Vegetables' });
sectionVeg.add(Ti.UI.createTableViewRow({ title: 'Carrots' }));
sectionVeg.add(Ti.UI.createTableViewRow({ title: 'Potatoes' }));

var table = Ti.UI.createTableView({
  data: [sectionFruit, sectionVeg]
});

win.add(table);
win.open();

var sectionFish = Ti.UI.createTableViewSection({ headerTitle: 'Fish' });
sectionFish.add(Ti.UI.createTableViewRow({ title: 'Cod' }));
sectionFish.add(Ti.UI.createTableViewRow({ title: 'Haddock' }));

table.insertSectionBefore(0, sectionFish);

Table View with Composite Layout

Create a table of rows that contain a custom child-view layout.

var win = Ti.UI.createWindow({
  backgroundColor: 'black',
  title: 'TableView Demo'
});

// generate random number, used to make each row appear distinct for this example
function randomInt(max){
  return Math.floor(Math.random() * max) + 1;
}

var IMG_BASE = 'images/';
var defaultFontSize = Ti.Platform.name === 'android' ? 16 : 14;

var tableData = [];

for (var i=1; i<=20; i++){
  var row = Ti.UI.createTableViewRow({
    className: 'forumEvent', // used to improve table performance
    backgroundSelectedColor: 'white',
    rowIndex: i, // custom property, useful for determining the row during events
    height: 110
  });

  var imageAvatar = Ti.UI.createImageView({
    image: IMG_BASE + 'custom_tableview/user.png',
    left: 10, top: 5,
    width: 50, height: 50
  });
  row.add(imageAvatar);

  var labelUserName = Ti.UI.createLabel({
    color: '#576996',
    font: {fontFamily:'Arial', fontSize: defaultFontSize+6, fontWeight: 'bold'},
    text: 'Fred Smith ' + i,
    left: 70, top: 6,
    width: 200, height: 30
  });
  row.add(labelUserName);

  var labelDetails = Ti.UI.createLabel({
    color: '#222',
    font: {fontFamily:'Arial', fontSize: defaultFontSize+2, fontWeight: 'normal'},
    text: 'Replied to post with id ' + randomInt(1000) + '.',
    left: 70, top: 44,
    width: 360
  });
  row.add(labelDetails);

  var imageCalendar = Ti.UI.createImageView({
    image: IMG_BASE + 'custom_tableview/eventsButton.png',
    left: 70, bottom: 2,
    width: 32, height: 32
  });
  row.add(imageCalendar);

  var labelDate = Ti.UI.createLabel({
    color: '#999',
    font: {fontFamily:'Arial', fontSize: defaultFontSize, fontWeight: 'normal'},
    text: 'on ' + randomInt(30) + ' Nov 2012',
    left: 105, bottom: 10,
    width: 200, height: 20
  });
  row.add(labelDate);

  tableData.push(row);
}

var tableView = Ti.UI.createTableView({
  backgroundColor: 'white',
  data: tableData
});

win.add(tableView);
win.open();

Alloy XML Markup

Previous table view sections example as an Alloy view.

<Alloy>
    <Window id="win">
        <TableView id="table">
            <TableViewSection id="sectionFruit" headerTitle="Fruit">
                <TableViewRow title="Apple"/>
                <TableViewRow title="Bananas"/>
            </TableViewSection>
            <TableViewSection id="sectionVeg" headerTitle="Vegetables">
                <TableViewRow title="Carrots"/>
                <TableViewRow title="Potatoes"/>
            </TableViewSection>
            <TableViewSection id="sectionFish" headerTitle="Fish">
                <TableViewRow title="Cod"/>
                <TableViewRow title="Haddock"/>
            </TableViewSection>
        </TableView>
    </Window>
</Alloy>

Properties 121

allowsMultipleSelectionDuringEditing

Booleansince Android 10.1.0, iPhone 8.2.0, iPad 8.2.0, macOS 9.2.0

Determines whether multiple items of this table view can be selected at the same time while editing the table.

Default: false

allowsMultipleSelectionInteraction

BooleaniPhoneiPadmacOSsince iPhone 8.2.0, iPad 8.2.0, macOS 9.2.0

Allows a two-finger pan gesture to automatically transition the table view into editing mode and start selecting rows.

Setting this property to true allows the user to start selecting multiple contiguous rows via a two-finger pan gesture. If the table view is already in editing mode, the user can also select multiple rows via a one-finger pan gesture along the edge of the table that contains editing controls (checkboxes). In order to support this behavior, you must also set Titanium.UI.TableView.allowsMultipleSelectionDuringEditing to true. Once user interaction stops the Titanium.UI.TableView.rowsselected event is fired.

Default: false

allowsSelection

BooleaniPhoneiPadmacOSsince iPhone 8.2.0, iPad 8.2.0, macOS 9.2.0

Determines whether this table's rows can be selected.

Set to false to prevent rows from being selected.

Default: true

allowsSelectionDuringEditing

Booleansince Android 10.1.0, iPhone 5.4.0, iPad 5.4.0, macOS 9.2.0

Determines whether this table's rows can be selected while editing the table.

Set to true to allow rows to be selected.

Default: false

apiName

Stringsince Android 3.2.0, iPhone 3.2.0, iPad 3.2.0, macOS 9.2.0read-only

Inherited from Titanium.Proxy

The name of the API that this proxy corresponds to.

Background color of the view, as a color name or hex triplet.

For information about color values, see the "Colors" section of Titanium.UI.

Default: transparent on non-iOS platforms, white on the iOS platform

Inherited from Titanium.UI.View

A background gradient for the view.

Linear and Radial Gradients

The following code excerpt creates two views, one with a linear gradient and one with a radial gradient.

var win1 = Titanium.UI.createWindow({
    title:'Tab 1',
    backgroundColor:'#fff',
    layout: 'vertical'
});

var radialGradient = Ti.UI.createView({
    top: 10,
    width: 100,
    height: 100,
    backgroundGradient: {
        type: 'radial',
        startPoint: { x: 50, y: 50 },
        endPoint: { x: 50, y: 50 },
        colors: [ 'red', 'blue'],
        startRadius: 50,
        endRadius: 0,
        backfillStart: true
    }
});
var linearGradient = Ti.UI.createView({
    top: 10,
    width: 100,
    height: 100,
    backgroundGradient: {
        type: 'linear',
        startPoint: { x: '0%', y: '50%' },
        endPoint: { x: '100%', y: '50%' },
        colors: [ { color: 'red', offset: 0.0}, { color: 'blue', offset: 0.25 }, { color: 'red', offset: 1.0 } ],
    }
});
win1.add(radialGradient);
win1.add(linearGradient);
win1.open();

borderRadius

Number | String | Array<Number> | Array<String>

Inherited from Titanium.UI.View

Radius for the rounded corners of the view's border.

Default: 0

bubbleParent

Booleansince Android 3.0.0, iPhone 3.0.0, iPad 3.0.0, macOS 9.2.0

Inherited from Titanium.Proxy

Indicates if the proxy will bubble an event to its parent.

Default: true

contentOffset

PointAndroidsince 12.4.0

X and Y coordinates to which to reposition the top-left point of the content region.

dimBackgroundForSearch

BooleaniPhoneiPadmacOSsince 6.2.0

A Boolean indicating whether the underlying content is dimmed during a search.

If you do not want to show the dimmed background when clicking on the search bar, set this property false during creation.

Default: true

editable

Booleansince Android 9.3.0, iPhone 3.2.0, iPad 3.2.0, macOS 9.2.0

Determines the rows' default editable behavior, which allows them to be deleted by the user when the table is in editing or moving mode.

This property determines the default behavior of child rows, but may be overridden by a row's editable property.

See the Titanium.UI.TableView description section for a full explanation of the TableView's editing and moving modes.

Default: Depends on `editing` and `moving` mode

editing

Booleansince Android 9.3.0, iPhone 3.2.0, iPad 3.2.0, macOS 9.2.0

Determines whether row editing mode is active.

The editing mode allows rows to be deleted or re-ordered, depending on their editable and moveable settings.

See the Titanium.UI.TableView description section for a full explanation of the TableView's editing and moving modes.

Default: false

elevation

NumberAndroidsince 5.0.0Android 5+

Inherited from Titanium.UI.View

Base elevation of the view relative to its parent in pixels.

filterAnchored

Booleansince 3.3.0

Determines whether the search is limited to the start of the string

Set to true to enable case anchored search.

Default: false

Filter attribute to be used when searching.

On the Android platform, this property can only be set to Titanium-defined properties of the TableViewRow object, such as title. To search text stored in a different attribute, set the title property of the TableViewRow object to the property to be searched. For example:

var label = Ti.UI.createLabel({text: 'Foobar'}),
var row = Ti.UI.createTableViewRow(title: label.text);
row.add(label);

On the iOS platform, this property can be set to any property on the TableViewRow object, including arbitrary properties set on the object, not only Titanium-defined properties.

Note that the filter is not anchored to the beginning of the string. So typing "ha" in the text box will include rows titled 'Harold' and 'Harvard', but also 'Sharon' and 'Jonathan'.

Determines whether the search is case insensitive.

Set to false to enable case sensitive search.

Default: true

fixedSize

BooleanAndroidsince 11.0.0

Sets fixedSize mode on Android TableView.

Set it to true if all TableView items have the same size to gain some performance.

Default: false

focusable

BooleanAndroid

Inherited from Titanium.UI.View

Whether view should be focusable while navigating with the trackball.

Default: false

footerDividersEnabled

BooleanAndroidsince 3.3.0

When set to false, the ListView will not draw the divider before the footer view.

Default: undefined but behaves as false

Table view footer as a view that will be rendered instead of a label.

In Alloy you can use a <FooterView> element nested in a <TableView> element:

<Alloy>
    <TableView>
        <FooterView>
            <View backgroundColor="#a00" height="50dp"/>
        </FooterView>
        <TableViewRow><Label>Row 1</Label></TableViewRow>
        <TableViewRow><Label>Row 2</Label></TableViewRow>
    </TableView>
</Alloy>

headerDividersEnabled

BooleanAndroidsince 3.3.0

When set to false, the ListView will not draw the divider after the header view.

Default: undefined but behaves as false

headerPullView

Titanium.UI.ViewiPhoneiPadmacOSsince 2.1.0

View positioned above the first row that is only revealed when the user drags the table contents down.

A headerPullView is a UI control that is often used to provide a convenient way for the user to refresh a table's data. Typically used with the setContentInsets method.

To specify the wrapper color see Titanium.UI.View.pullBackgroundColor.

For an example, see the "Pull to refresh" section in the TableViews guide.

Alloy applications can use a <HeaderPullView> element inside a <TableView> element.

<Alloy>
    <TableView>
        <HeaderPullView platform="ios">
            <View class="pull">
                <Label color="#F2F4F4" bottom="25dp">Header pull view</Label>
            </View>
        </HeaderPullView>
    </TableView>
</Alloy>

Table view header as a view that will be rendered instead of a label.

In Alloy you can use a <HeaderView> element nested in a <TableView> element:

<Alloy>
    <TableView>
        <HeaderView>
            <View backgroundColor="#a00" height="50dp"/>
        </HeaderView>
        <TableViewRow><Label>Row 1</Label></TableViewRow>
        <TableViewRow><Label>Row 2</Label></TableViewRow>
    </TableView>
</Alloy>

hideSearchOnSelection

BooleaniPhoneiPadmacOS

Determines whether the search field should hide on completion.

Set to false to prevent the search field from being hidden when an item in the search results is clicked.

Many standard applications (such as Contacts) have a behavior equivalent to false for this value, but the default is true for legacy reasons.

The Android platform behaves as though this value were false.

Default: true

index

Array<TableViewIndexEntry>iPhoneiPadmacOS

Array of objects (with title and index properties) to control the table view index.

If an index array is specified, an index bar is displayed on the right-hand side of the table view. Clicking on a title in the index bar scrolls the table view to the row index associated with that title. If the index is -1 the table view will scroll to the top.

layout

String

Inherited from Titanium.UI.View

Specifies how the view positions its children. One of: 'composite', 'vertical', or 'horizontal'.

left

Number | String

Inherited from Titanium.UI.View

View's left position, in platform-specific units.

moveable

Booleansince Android 9.3.0, iPhone 3.2.0, iPad 3.2.0, macOS 9.2.0

Determines the rows' default moveable behavior, which allows them to be re-ordered by the user when the table is in editing or moving mode.

This property determines the default behavior of child rows, but may be overridden by a row's moveable property.

See the Titanium.UI.TableView description section for a full explanation of the TableView's editing and moving modes.

Default: Depends on `editing` and `moving` mode

moving

Booleansince Android 9.3.0, iPhone 3.2.0, iPad 3.2.0, macOS 9.2.0

Determines whether row moving mode is active.

The moving mode allows rows to be deleted or re-ordered, depending on their editable and moveable settings.

See the Titanium.UI.TableView description section for a full explanation of the TableView's editing and moving modes.

Default: false

opacity

Number

Inherited from Titanium.UI.View

Opacity of this view, from 0.0 (transparent) to 1.0 (opaque). Defaults to 1.0 (opaque).

rect

DimensionWithAbsolutessince 2.0.0read-only

Inherited from Titanium.UI.View

The bounding box of the view relative to its parent, in system units.

resultsBackgroundColor

String | Titanium.UI.ColoriPhoneiPadmacOSsince 7.3.0

The background color of the search results (iOS-only).

For information about color values, see the "Colors" section of Titanium.UI. Note: A transparent background-color is not officially supported by Apple to prevent that the list of results overlaps with the list view below it.

Default: undefined (behaves as white)

resultsSeparatorColor

String | Titanium.UI.ColoriPhoneiPadmacOSsince 7.3.0

Separator line color between rows inside search results, as a color name or hex triplet (iOS-only).

To make the line invisible, set this property to transparent, or the same value as the backgroundColor property. For information about color values, see the "Colors" section of Titanium.UI.

Default: undefined (behaves as gray)

resultsSeparatorInsets

HorizontalInsetsiPhoneiPadmacOSsince 7.3.0

The insets for search results separators (applies to all cells & iOS-only).

Cell separators do not extend all the way to the edge of the list view. This property sets the default inset for all cells in the table. Set this to a dictionary with two keys, left specifying inset from left edge and right specifying the inset from the right edge.

rotation

NumberAndroidiPhoneiPadsince Android 5.4.0, iPhone 12.3.0, iPad 12.3.0

Inherited from Titanium.UI.View

Clockwise 2D rotation of the view in degrees.

rowHeight

Number

Default row height for table view rows.

rowSeparatorInsets

HorizontalInsetsiPhoneiPadmacOSsince 5.2.0

The insets for table view cells (applies to all cells).

Cell separators do not extend all the way to the edge of the table view. Set this to a dictionary with two keys, left specifying inset from left edge and right specifying the inset from the right edge. This property is only available upon creation of the cells.

For example:

tableView1.rowSeparatorInsets = {
    left: 10,
    right: 10
};

scrollable

Booleansince 7.3.0

If true, the tableview can be scrolled.

Default: true

scrollsToTop

BooleaniPhoneiPadmacOSsince 2.1.2

Controls whether the scroll-to-top gesture is effective.

The scroll-to-top gesture is a tap on the status bar; The default value of this property is true. This gesture works when you have a single visible table view. If there are multiple table views, web views, text areas, and/or scroll views visible, you will need to disable (set to false) on the above views you DON'T want this behaviour on. The remaining view will then respond to scroll-to-top gesture.

Default: true

searchAsChild

BooleanAndroidsince 3.0.2

Determines whether the SearchBar or SearchView appears as part of the TableView.

Set to false if the search view will be displayed in the action bar.

Default: true

searchHidden

BooleaniPhoneiPadmacOS

Determines whether the search field is visible.

Set to true to hide the search field.

Default: false (search field visible)

sectionCount

Numbersince 3.0.0read-only

Number of sections in this table view.

sectionHeaderTopPadding

NumberiPhoneiPadmacOSsince 10.1.0iOS 15.0+

Padding above each section header.

If not set or set to -1, it defaults to an automatic spacing determined by the system.

sections

Array<Titanium.UI.TableViewSection>since Android 3.1.0, iPhone 3.0.0, iPad 3.0.0

Sections of this table.

In Release 3.0, this property is read-only on Android.

Due to a known issue, TIMOB-12616, the sections property should not be used for adding sections on iOS.

Separator line color between rows, as a color name or hex triplet.

To make the line invisible, set this property to transparent, or the same value as the backgroundColor property.

For information about color values, see the "Colors" section of Titanium.UI.

Default: platform-specific default color

separatorInsets

HorizontalInsetsdeprecatediPhoneiPadmacOSsince 3.2.0

Deprecated since 5.2.0

The insets for table view separators (applies to all cells).

Cell separators do not extend all the way to the edge of the table view. This property sets the default inset for all cells in the table. Set this to a dictionary with two keys, left specifying inset from left edge and right specifying the inset from the right edge.

For example:

tableView1.separatorInsets = {
    left: 10,
    right: 10
};

showSearchBarInNavBar

BooleaniPhoneiPadmacOSsince 8.1.0

A Boolean indicating whether search bar will be in navigation bar.

If you want to show the search bar in navigation bar, set this property true during creation. Use the Titanium.UI.Window.hidesSearchBarWhenScrolling property to control the visibility of the searchbar when scrolling.

Default: false

showSelectionCheck

BooleanAndroidsince 10.1.0

Determines whether the selection checkmark is displayed on selected rows.

Default: true

showVerticalScrollIndicator

BooleaniPhoneiPadmacOS

Determines whether this table view displays a vertical scroll indicator.

Set to false to hide the vertical scroll indicator.

Default: true

tableSeparatorInsets

HorizontalInsetsiPhoneiPadmacOSsince 5.2.0

The insets for the table view header and footer.

Cell separators do not extend all the way to the edge of the table view. Set this to a dictionary with two keys, left specifying inset from left edge and right specifying the inset from the right edge. If the rowSeparatorInsets is not set, the tableSeparatorInsets will also set the cell insets.

For example:

tableView1.tableSeparatorInsets = {
    left: 10,
    right: 10
};

tooltip

Stringsince 12.1.0iOS 15.0+

Inherited from Titanium.UI.View

The default text to display in the control's tooltip.

touchFeedback

BooleanAndroidsince 10.0.0

A material design visual construct that provides an instantaneous visual confirmation of touch point.

Touch feedback is only applied to a view's background.

Default: true

translationX

NumberAndroidsince 5.0.0

Inherited from Titanium.UI.View

Horizontal location of the view relative to its left position in pixels.

Methods 31

Inherited from Titanium.Proxy

Adds the specified callback as an event listener for the named event.

Parameters
ParametersTypeDescription
nameString

Name of the event.

callbackCallback<Titanium.Event>

Callback function to invoke when the event is fired.

4 fields
bubbles Boolean

True if the event will try to bubble up if possible.

cancelBubble Boolean

Set to true to stop the event from bubbling.

source Object

Source object that fired the event.

type String

Name of the event fired.

Appends a single row or an array of rows to the end of the table.

Each row can be passed as a TableViewRow object, or as dictionary specifying the properties for a table row, in which case this TableView will create TableViewRow objects as needed.

On iOS, the row(s) can be inserted with animation by specifying a properties parameter.

Parameters
ParametersTypeDescription
rowTitanium.UI.TableViewRow | Dictionary<Titanium.UI.TableViewRow> | Array<Titanium.UI.TableViewRow> | Array<Dictionary<Titanium.UI.TableViewRow>>

Row or rows to add to the table.

animation?TableViewAnimationProperties

Animation properties. (iOS only.)

3 fields
animated Boolean

Whether this table change should be animated. Ignored if any animationStyle value is specified.

animationStyle Number

Type of animation to use for row insertions and deletions.

position Number

Specifies what position to scroll the selected row to.

appendSection

since 3.0.0

Appends a single section or an array of sections to the end of the table.

Each section can be passed as a TableViewSection object, or as dictionary specifying the properties for a table section, in which case this TableView will create TableViewSection objects as needed.

On iOS, the section(s) can be inserted with animation by specifying a properties parameter.

Due to a known issue, TIMOB-12616, this method should not be used for adding sections on iOS.

Parameters
ParametersTypeDescription
sectionTitanium.UI.TableViewSection | Dictionary<Titanium.UI.TableViewSection> | Array<Titanium.UI.TableViewSection> | Array<Dictionary<Titanium.UI.TableViewSection>>

Section or section to add to the table.

animation?TableViewAnimationProperties

Animation properties. (iOS only.)

3 fields
animated Boolean

Whether this table change should be animated. Ignored if any animationStyle value is specified.

animationStyle Number

Type of animation to use for row insertions and deletions.

position Number

Specifies what position to scroll the selected row to.

convertPointToView

since Android 1.8, iPhone 1.8, iPad 1.8, macOS 9.2.0

Inherited from Titanium.UI.View

Translates a point from this view's coordinate system to another view's coordinate system.

Parameters
ParametersTypeDescription
pointPoint

A point in this view's coordinate system.

If this argument is missing an x or y property, or the properties can not be converted into numbers, an exception will be raised.

destinationViewTitanium.UI.View

View that specifies the destination coordinate system to convert to. If this argument is not a view, an exception will be raised.

Returns Point

Deletes an existing row.

On iOS, the row can be deleted with animation by specifying a properties parameter. Starting in SDK 3.1.0, the row can be specified using Titanium.UI.TableViewRow on Android and iOS.

Parameters
ParametersTypeDescription
rowNumber | Titanium.UI.TableViewRow

Index of the row to delete, or the row object to delete.

animation?TableViewAnimationProperties

Animation properties. (iOS only.)

3 fields
animated Boolean

Whether this table change should be animated. Ignored if any animationStyle value is specified.

animationStyle Number

Type of animation to use for row insertions and deletions.

position Number

Specifies what position to scroll the selected row to.

deleteSection

since 3.0.0

Deletes an existing section.

On iOS, the section can be deleted with animation by specifying a properties parameter.

Parameters
ParametersTypeDescription
sectionNumber

Index of the section to delete.

animation?TableViewAnimationProperties

Animation properties. (iOS only.)

3 fields
animated Boolean

Whether this table change should be animated. Ignored if any animationStyle value is specified.

animationStyle Number

Type of animation to use for row insertions and deletions.

position Number

Specifies what position to scroll the selected row to.

deselectRow

iPhoneiPadmacOS

Programmatically deselects a row.

Parameters
ParametersTypeDescription
rowNumber

Row index to deselect.

Inherited from Titanium.Proxy

Fires a synthesized event to any registered listeners.

Parameters
ParametersTypeDescription
nameString

Name of the event.

event?Dictionary

A dictionary of keys and values to add to the Titanium.Event object sent to the listeners.

getViewById

since 6.1.0

Inherited from Titanium.UI.View

Returns the matching view of a given view ID.

Parameters
ParametersTypeDescription
idString

The ID of the view that should be returned. Use the id property in your views to enable it for indexing in this method.

Inherited from Titanium.UI.View

Hides this view.

Parameters
ParametersTypeDescription
options?AnimatedOptions

Animation options for Android only. Since SDK 5.1.0 and used only on Android 5.0+

Determines whether to enable a circular reveal animation. Note that the default here is equivalent to passing in { animated: false }

insertAt

since 3.3.0

Inherited from Titanium.UI.View

Inserts a view at the specified position in the children array.

Parameters
ParametersTypeDescription
paramsViewPositionOptions

Pass an object that specifies the view to insert and optionally at which position (defaults to end)

2 fields
position? Number

Position in the children array of the view element to replace.

view Titanium.UI.View

View to insert. Required.

Inserts a row after another row.

Each row can be passed as a TableViewRow object, or as dictionary specifying the properties for a table row, in which case this TableView will create TableViewRow objects as needed.

On iOS, the row(s) may be inserted with animation by setting the animation parameter.

Parameters
ParametersTypeDescription
indexNumber

Index of the row to insert after.

rowTitanium.UI.TableViewRow | Dictionary<Titanium.UI.TableViewRow>

Row to insert.

animation?TableViewAnimationProperties

Animation properties. (iOS only.)

3 fields
animated Boolean

Whether this table change should be animated. Ignored if any animationStyle value is specified.

animationStyle Number

Type of animation to use for row insertions and deletions.

position Number

Specifies what position to scroll the selected row to.

Inserts a row before another row.

Each row can be passed as a TableViewRow object, or as dictionary specifying the properties for a table row, in which case this TableView will create TableViewRow objects as needed.

On iOS, the row(s) may be inserted with animation by setting the animation parameter.

Parameters
ParametersTypeDescription
indexNumber

Index of the row to insert before.

rowTitanium.UI.TableViewRow | Dictionary<Titanium.UI.TableViewRow>

Row to insert.

animation?TableViewAnimationProperties

Animation properties. (iOS only.)

3 fields
animated Boolean

Whether this table change should be animated. Ignored if any animationStyle value is specified.

animationStyle Number

Type of animation to use for row insertions and deletions.

position Number

Specifies what position to scroll the selected row to.

Inserts a section after another section.

Each section can be passed as a TableViewSection object, or as dictionary specifying the properties for a table section, in which case this TableView will create TableViewSection objects as needed.

On iOS, the section(s) may be inserted with animation by setting the animation parameter.

Due to a known issue, TIMOB-12616, this method should not be used for adding sections on iOS.

Parameters
ParametersTypeDescription
indexNumber

Index of the section to insert after.

sectionTitanium.UI.TableViewSection | Dictionary<Titanium.UI.TableViewSection>

section to insert.

animation?TableViewAnimationProperties

Animation properties. (iOS only.)

3 fields
animated Boolean

Whether this table change should be animated. Ignored if any animationStyle value is specified.

animationStyle Number

Type of animation to use for row insertions and deletions.

position Number

Specifies what position to scroll the selected row to.

Inserts a section before another section.

Each section can be passed as a TableViewSection object, or as dictionary specifying the properties for a table section, in which case this TableViewSection will create TableViewSection objects as needed.

On iOS, the section(s) may be inserted with animation by setting the animation parameter.

Due to a known issue, TIMOB-12616, this method should not be used for adding sections on iOS.

Parameters
ParametersTypeDescription
indexNumber

Index of the section to insert before.

sectionTitanium.UI.TableViewSection | Dictionary<Titanium.UI.TableViewSection>

section to insert.

animation?TableViewAnimationProperties

Animation properties. (iOS only.)

3 fields
animated Boolean

Whether this table change should be animated. Ignored if any animationStyle value is specified.

animationStyle Number

Type of animation to use for row insertions and deletions.

position Number

Specifies what position to scroll the selected row to.

Inherited from Titanium.Proxy

Removes the specified callback as an event listener for the named event.

Parameters
ParametersTypeDescription
nameString

Name of the event.

callbackCallback<Titanium.Event>

Callback function to remove. Must be the same function passed to addEventListener.

4 fields
bubbles Boolean

True if the event will try to bubble up if possible.

cancelBubble Boolean

Set to true to stop the event from bubbling.

source Object

Source object that fired the event.

type String

Name of the event fired.

Scrolls the table view to ensure that the specified row is on screen.

On iOS, specify a TableViewAnimationProperties object to control the position that the selected row is scrolled to, and whether scrolling is animated.

Parameters
ParametersTypeDescription
indexNumber

Row index to scroll to.

animation?TableViewAnimationProperties

Animation properties.

3 fields
animated Boolean

Whether this table change should be animated. Ignored if any animationStyle value is specified.

animationStyle Number

Type of animation to use for row insertions and deletions.

position Number

Specifies what position to scroll the selected row to.

Scrolls the table to a specific top position where 0 is the topmost y position in the table view.

The behavior of this method is platform-specific.

On Android, the top value is interpreted as a row index that should be scrolled to the top of the screen. The table will not scroll the last row of data higher than the bottom of the screen. If there is less than one screenful of data below the specified row, the table doesn't scroll the specified row all the way to the top. If the table has less than one screenful of data total, it does not scroll at all.

On iOS, the top value is interpreted as a pixel offset between the top of the top row of data and the top of the table view. So a top value of 0 scrolls the list to the top. A positive value scrolls it down, and a negative value scrolls the list up above the first item.

On iOS, specify a TableViewAnimationProperties object with animated set to false to disable the scrolling animation.

Parameters
ParametersTypeDescription
topNumber

Y position for the top of the table view.

animation?TableViewAnimationProperties

Animation properties.

3 fields
animated Boolean

Whether this table change should be animated. Ignored if any animationStyle value is specified.

animationStyle Number

Type of animation to use for row insertions and deletions.

position Number

Specifies what position to scroll the selected row to.

selectRow

since iPhone 1.8.2, iPad 1.8.2, Android 3.0.0

Programmatically selects a row. In Android, it sets the currently selected item. If in touch mode, the item will not be selected but it will still be positioned appropriately. If the specified selection position is less than 0, then the item at position 0 will be selected.

Parameters
ParametersTypeDescription
rowNumber

Row index to select.

setContentInsets

iPhoneiPadmacOSsince 2.1.0

Sets this tableview's content insets.

A table view is essentially a scroll view that contains a set of static row views that represents the content. Thus, the setContentInsets method facilitates a margin, or inset, distance between the content and the container scroll view.

Typically used with the headerPullView property.

Parameters
ParametersTypeDescription
edgeInsetsPadding

Sets the distance that the content view is inset from the enclosing scroll view of the table. For example:

setContentInset({ top: 50, bottom: 10, right: 10, left: 10 }, { animated: true });
options?AnimatedWithDurationOptions

Determines whether, and how, the content inset change should be animated.

Note that the default here is equivalent to passing in { animated: false }

setContentOffset

since Android 10.1.0, iPhone 3.4.0, iPad 3.4.0, macOS 9.2.0

Sets the value of the content offset of the table view without animation by default.

Parameters
ParametersTypeDescription
contentOffsetPoint

Dictionary with the properties x, y. The x and y coordinates reposition the top-left point of the scrollable region of the table view.

options?AnimatedOptions

Pass in { animated: true } to animate the transition.

Note that the default here is equivalent to passing in { animated: false }

Sets the data in the table.

Each row can be passed as a TableViewRow object, or as dictionary specifying the properties for a table row, in which case this TableView will create TableViewRow objects as needed.

setData can also be used to add TableViewSections to a table view.

Parameters
ParametersTypeDescription
dataArray<Titanium.UI.TableViewRow> | Array<Dictionary<Titanium.UI.TableViewRow>> | Array<Titanium.UI.TableViewSection>

Rows or sections to add to this table.

animation?TableViewAnimationProperties

Animation properties. (iOS only.)

3 fields
animated Boolean

Whether this table change should be animated. Ignored if any animationStyle value is specified.

animationStyle Number

Type of animation to use for row insertions and deletions.

position Number

Specifies what position to scroll the selected row to.

setHeaderPullView

deprecatediPhoneiPadmacOSsince 2.1.0

Deprecated since 10.0.0, removed in 10.0.0

Use the <Titanium.UI.TableView.headerPullView> property instead.

Sets the value of the [Titanium.UI.TableView.headerPullView] property.

Parameters
ParametersTypeDescription
viewTitanium.UI.View

View to display.

Inherited from Titanium.UI.View

Makes this view visible.

Parameters
ParametersTypeDescription
options?AnimatedOptions

Animation options for Android only. Since SDK 5.1.0 and only used on Android 5.0+

Determines whether to enable a circular reveal animation. Note that the default here is equivalent to passing in { animated: false }

Inherited from Titanium.UI.View

Returns an image of the rendered view, as a Blob.

Parameters
ParametersTypeDescription
callback?Callback<Titanium.Blob>

Function to be invoked upon completion. If non-null, this method will be performed asynchronously. If null, it will be performed immediately.

honorScaleFactor?Boolean

Determines whether the image is scaled based on scale factor of main screen. (iOS only)

When set to true, image is scale factor is honored. When set to false, the image in the blob has the same dimensions for retina and non-retina devices.

Updates an existing row, optionally with animation.

Parameters
ParametersTypeDescription
indexNumber

Index of the row to update.

rowTitanium.UI.TableViewRow

Row data to update.

animationTableViewAnimationProperties

Animation properties. (iOS only.)

3 fields
animated Boolean

Whether this table change should be animated. Ignored if any animationStyle value is specified.

animationStyle Number

Type of animation to use for row insertions and deletions.

position Number

Specifies what position to scroll the selected row to.

updateSection

since 3.0.0

Updates an existing section, optionally with animation.

Known issues:

  • On iOS, event listeners do not fire correctly after table view sections are updated using the updateSection methods. (TIMOB-12616
Parameters
ParametersTypeDescription
indexNumber

Index of the section to update.

sectionTitanium.UI.TableViewSection

section data to update.

animationTableViewAnimationProperties

Animation properties. (iOS only.)

3 fields
animated Boolean

Whether this table change should be animated. Ignored if any animationStyle value is specified.

animationStyle Number

Type of animation to use for row insertions and deletions.

position Number

Specifies what position to scroll the selected row to.

Events 24

Fired when a table row is clicked by the user.

Event properties
Event propertiesTypeDescription
detailBoolean

Indicates whether the detail button was clicked. Only true if row.hasDetail is true and the detail button was clicked.

indexNumber

Row index.

rowTitanium.UI.TableViewRow

Table view row object.

rowDataDictionary<Titanium.UI.TableViewRow>

Properties of the row.

When the row is created implicitly using a JavaScript dictionary object, use this property rather than row to access any custom row properties.

Here's an example of creating a row implicitly, which is not the recommended way.

var data = [{title:'Row 1', hasChild:true, color:'red', selectedColor:'#fff', special:'special 1'},];
var table = Ti.UI.createTableView({data: data});
searchModeBoolean

Indicates whether the table is in search mode.

sectionTitanium.UI.TableViewSection

Table view section object, if the clicked row is contained in a section.

xNumber

X coordinate of the event from the source view's coordinate system.

yNumber

Y coordinate of the event from the source view's coordinate system.

Inherited from Titanium.UI.View

Fired when the device detects a double click against the view.

Event properties
Event propertiesTypeDescription
xNumber

X coordinate of the event from the source view's coordinate system.

yNumber

Y coordinate of the event from the source view's coordinate system.

obscuredBoolean

Returns true if the double click passed through an overlapping window belonging to another app.

This is a security feature to protect an app from "tapjacking", where a malicious app can use a system overlay to intercept touch events in your app or to trick the end-user to tap on UI in your app intended for the overlay.

delete

since 10.0.0

Fired when a table row is deleted by the user.

Event properties
Event propertiesTypeDescription
detailBoolean

Indicates whether the delete button was clicked. Always false for this event.

indexNumber

Row index.

rowTitanium.UI.TableViewRow

Table view row object.

rowDataDictionary<Titanium.UI.TableViewRow>

Properties of the row. Use this property rather than row to access any custom row properties.

searchModeBoolean

Indicates whether the table is in search mode. Always false for this event.

sectionTitanium.UI.TableViewSection

Table view section object, if the deleted row is contained in a section.

xNumber

X coordinate of the event from the source view's coordinate system.

yNumber

Y coordinate of the event from the source view's coordinate system.

Fired when the device detects a double tap against this view.

Event properties
Event propertiesTypeDescription
indexNumber

Row index.

rowTitanium.UI.TableViewRow

Table view row object.

rowDataDictionary<Titanium.UI.TableViewRow>

Properties of the row.

When the row is created implicitly using a JavaScript dictionary object, use this property rather than row to access any custom row properties.

Here's an example of creating a row implicitly, which is not the recommended way.

var data = [{title:'Row 1', hasChild:true, color:'red', selectedColor:'#fff', special:'special 1'},];
var table = Ti.UI.createTableView({data: data});
xNumber

X coordinate of the event from the source view's coordinate system.

yNumber

Y coordinate of the event from the source view's coordinate system.

dragend

iPhoneiPadmacOSsince 3.0.0

Fired when the scrollable region stops being dragged.

A dragging gesture is when a touch remains in contact with the display to physically drag the view, as opposed to it being the result of scrolling momentum.

Event properties
Event propertiesTypeDescription
decelerateBoolean

Indicates whether scrolling will continue but decelerate, now that the drag gesture has been released by the touch. If false, scrolling will stop immediately.

dragstart

iPhoneiPadmacOSsince 3.0.0

Fired when the scrollable region starts being dragged.

A dragging gesture is when a touch remains in contact with the display to physically drag the view, as opposed to it being the result of scrolling momentum.

editaction

iPhoneiPadmacOSsince 12.4.0

Fired when the user interacts with one of the custom edit actions defined by Titanium.UI.TableViewRow.editActions.

Do not rely on the source property to determine which item fired the event. Use the row and section, or the index to determine the table row that generated the event.

Note that the index property of this event correspond to the list view state before the user action.

Event properties
Event propertiesTypeDescription
actionString

The title as defined in the row action object.

identifierString

The [identifier](RowActionType. identifier) of the row action. Only included in the event if previously defined.

rowTitanium.UI.TableViewRow | Dictionary<Titanium.UI.TableViewRow>

The row that fired this event.

sectionTitanium.UI.TableViewSection

The section that fired this event.

indexNumber

The index of the row that fired this event.

indexclick

iPhoneiPadmacOSsince 3.4.0

Fired when the index bar is clicked by the user.

If the tabe view contains the index array of indices the index bar will appear on the side. This event will fire when this bar is clicked

Event properties
Event propertiesTypeDescription
titleString

The title of the index clicked.

indexNumber

The index number clicked.

keypressed

since Android 3.1.0, iPhone 5.4.0, iPad 5.4.0, macOS 9.2.0

Inherited from Titanium.UI.View

Fired when a hardware key is pressed in the view.

Event properties
Event propertiesTypeDescription
keyCodeNumber

The code for the physical key that was pressed. For more details, see KeyEvent. This API is experimental and subject to change.

Fired when the device detects a long press.

A long press is generated by touching and holding on the touchscreen. Unlike a longclick, it does not respond to the trackball button.

The event occurs before the finger is lifted.

A longpress and a longclick can occur together.

In contrast to a longclick, this event returns the x and y coordinates of the touch.

Event properties
Event propertiesTypeDescription
indexNumber

Row index.

rowTitanium.UI.TableViewRow

Table view row object.

rowDataDictionary<Titanium.UI.TableViewRow>

Properties of the row.

When the row is created implicitly using a JavaScript dictionary object, use this property rather than row to access any custom row properties.

Here's an example of creating a row implicitly, which is not the recommended way.

var data = [{title:'Row 1', hasChild:true, color:'red', selectedColor:'#fff', special:'special 1'},];
var table = Ti.UI.createTableView({data: data});
yNumber

Y coordinate of the event from the source view's coordinate system.

xNumber

X coordinate of the event from the source view's coordinate system.

move

since Android 9.3.0, iPhone 3.2.0, iPad 3.2.0, macOS 9.2.0

Fired when a table row is moved by the user.

Event properties
Event propertiesTypeDescription
detailBoolean

Boolean to indicate if the right area was clicked. Always false for this event.

indexNumber

Row index.

searchModeBoolean

Boolean to indicate if the table is in search mode. Always false for this event.

sectionTitanium.UI.TableViewSection

Table view section object, if the deleted row is contained in a section.

rowTitanium.UI.TableViewRow

Table view row object.

rowDataDictionary<Titanium.UI.TableViewRow>

Properties of the row. Use this property rather than row to access any custom row properties.

xNumber

X coordinate of the event from the source view's coordinate system.

yNumber

Y coordinate of the event from the source view's coordinate system.

pinch

since 1.8.0

Inherited from Titanium.UI.View

Fired when the device detects a pinch gesture.

Event properties
Event propertiesTypeDescription
scaleNumber

The scale factor relative to the points of the two touches in screen coordinates.

velocityNumber

The velocity of the pinch in scale factor per second.

timeNumber

The event time of the current event being processed.

timeDeltaNumber

The time difference in milliseconds between the previous accepted scaling event and the current scaling event.

currentSpanNumber

The average distance between each of the pointers forming the gesture in progress through the focal point.

currentSpanXNumber

The average X distance between each of the pointers forming the gesture in progress through the focal point.

currentSpanYNumber

The average Y distance between each of the pointers forming the gesture in progress through the focal point.

previousSpanNumber

The previous average distance between each of the pointers forming the gesture in progress through the focal point.

previousSpanXNumber

The previous average X distance between each of the pointers forming the gesture in progress through the focal point.

previousSpanYNumber

The previous average Y distance between each of the pointers forming the gesture in progress through the focal point.

focusXNumber

The X coordinate of the current gesture's focal point.

focusYNumber

The Y coordinate of the current gesture's focal point.

inProgressBoolean

Returns true if a scale gesture is in progress, false otherwise.

rowsselected

since Android 10.1.0, iPhone 8.2.0, iPad 8.2.0, macOS 9.2.0

Fired when user stops two-pan gesture interaction for selecting multiple rows. It is used in conjunction with Titanium.UI.TableView.allowsMultipleSelectionInteraction.

Event properties
Event propertiesTypeDescription
selectedRowsArray<SelectedRowObject>

List of rows selected by user.

4 fields
index Number

Row index.

row Titanium.UI.TableViewRow

Table view row object.

rowData Dictionary<Titanium.UI.TableViewRow>

Properties of the row. Use this property rather than row to access any custom row properties.

section Titanium.UI.TableViewSection

Table view section object, if the clicked row is contained in a section.

startingRowSelectedRowObject

First row selected when user started interaction.

4 fields
index Number

Row index.

row Titanium.UI.TableViewRow

Table view row object.

rowData Dictionary<Titanium.UI.TableViewRow>

Properties of the row. Use this property rather than row to access any custom row properties.

section Titanium.UI.TableViewSection

Table view section object, if the clicked row is contained in a section.

Fired when the table view is scrolled.

Event properties
Event propertiesTypeDescription
contentOffsetPoint

Dictionary with x and y properties containing the content offset.

contentSizeSize

Dictionary with width and height properties containing the size of the content (regardless of the display size in the case of scrolling).

firstVisibleItemNumber

Row index of the topmost visible row in the view.

sizeSize

Dictionary with width and height properties containing the size of the visible table view

totalItemCountNumber

Total number of rows in the view.

visibleItemCountNumber

Number of rows currently visible in the view.

scrollend

since 3.0.0

Fired when the table view stops scrolling.

Event properties
Event propertiesTypeDescription
contentSizeSize

Dictionary with width and height properties containing the size of the content (regardless of the display size in the case of scrolling).

contentOffsetPoint

Dictionary with x and y properties containing the content offset.

sizeSize

Dictionary with width and height properties containing the size of the visible table view.

xNumber

X coordinate of the event from the source view's coordinate system.

yNumber

Y coordinate of the event from the source view's coordinate system.

Fired when the device detects a single tap against the view.

Event properties
Event propertiesTypeDescription
indexNumber

Row index.

rowTitanium.UI.TableViewRow

Table view row object.

rowDataDictionary<Titanium.UI.TableViewRow>

Properties of the row.

When the row is created implicitly using a JavaScript dictionary object, use this property rather than row to access any custom row properties.

Here's an example of creating a row implicitly, which is not the recommended way.

var data = [{title:'Row 1', hasChild:true, color:'red', selectedColor:'#fff', special:'special 1'},];
var table = Ti.UI.createTableView({data: data});
xNumber

X coordinate of the event from the source view's coordinate system.

yNumber

Y coordinate of the event from the source view's coordinate system.

swipe

since 2.1.0

Fired when the device detects a swipe gesture (left or right) against the view.

Event properties
Event propertiesTypeDescription
directionString

Direction of the swipe, either left or right.

indexNumber

Row index.

rowTitanium.UI.TableViewRow

Table view row object.

rowDataDictionary<Titanium.UI.TableViewRow>

Properties of the row.

When the row is created implicitly using a JavaScript dictionary object, use this property rather than row to access any custom row properties.

Here's an example of creating a row implicitly, which is not the recommended way.

var data = [{title:'Row 1', hasChild:true, color:'red', selectedColor:'#fff', special:'special 1'},];
var table = Ti.UI.createTableView({data: data});
xNumber

X coordinate of the event's endpoint from the source view's coordinate system.

yNumber

Y coordinate of the event's endpoint from the source view's coordinate system.

touchcancel

iPhoneiPadmacOS

Fired when a touch gesture is interrupted by the device.

Generated in various circumstances, including an incoming call to allow the UI to clean up state.

On Android and iOS, be aware that a row or table touch event and a table scroll event cannot occur concurrently. If a table begins to scroll during a touch event, the appropriate row or table touchcancel event fire before the scroll event begins.

Event properties
Event propertiesTypeDescription
xNumber

X coordinate of the event from the source view's coordinate system.

yNumber

Y coordinate of the event from the source view's coordinate system.

forceNumber

The current force value of the touch event. Note: This property only available for iOS devices that support 3D-Touch and run 9.0 or later.

maximumPossibleForceNumber

Maximum possible value of the force property. Note: This property is only available for iOS devices that support 3D-Touch and run 9.0 or later.

altitudeAngleNumber

A value which indicates the stylus angle on the screen. If the stylus is perpendicular to the screen or no stylus is being used, the value will be Pi/2. If the stylus is parallel to the screen, the value will be 0. Note: This property is only available for iOS devices that support 3D-Touch and are 9.1 or later.

timestampNumber

The time (in seconds) when the touch was used in correlation with the system start up. Note: This property is only available for iOS devices that support 3D-Touch and run 9.0 or later.

Fired when a touch gesture is complete.

On Android and iOS, be aware that a row or table touch event and a table scroll event cannot occur concurrently. If a table begins to scroll during a touch event, the appropriate row or table touchcancel event fire before the scroll event begins.

Event properties
Event propertiesTypeDescription
indexNumber

Row index.

rowTitanium.UI.TableViewRow

Table view row object.

rowDataDictionary<Titanium.UI.TableViewRow>

Properties of the row.

When the row is created implicitly using a JavaScript dictionary object, use this property rather than row to access any custom row properties.

Here's an example of creating a row implicitly, which is not the recommended way.

var data = [{title:'Row 1', hasChild:true, color:'red', selectedColor:'#fff', special:'special 1'},];
var table = Ti.UI.createTableView({data: data});
xNumber

X coordinate of the event from the source view's coordinate system.

yNumber

Y coordinate of the event from the source view's coordinate system.

forceNumber

The current force value of the touch event. Note: This property only available for iOS devices that support 3D-Touch and run 9.0 or later.

maximumPossibleForceNumber

Maximum possible value of the force property. Note: This property is only available for iOS devices that support 3D-Touch and run 9.0 or later.

altitudeAngleNumber

A value which indicates the stylus angle on the screen. If the stylus is perpendicular to the screen or no stylus is being used, the value will be Pi/2. If the stylus is parallel to the screen, the value will be 0. Note: This property is only available for iOS devices that support 3D-Touch and are 9.1 or later.

timestampNumber

The time (in seconds) when the touch was used in correlation with the system start up. Note: This property is only available for iOS devices that support 3D-Touch and run 9.0 or later.

Inherited from Titanium.UI.View

Fired as soon as the device detects movement of a touch.

Event properties
Event propertiesTypeDescription
xNumber

X coordinate of the event from the source view's coordinate system.

yNumber

Y coordinate of the event from the source view's coordinate system.

forceNumber

The current force value of the touch event. Note: This property is only available for iOS devices that support 3D-Touch and run 9.0 or later and on some Android devices.

sizeNumber

The current size of the touch area. Note: This property is only available on some Android devices.

maximumPossibleForceNumber

Maximum possible value of the force property. Note: This property is only available for iOS devices that support 3D-Touch and run 9.0 or later.

altitudeAngleNumber

A value which indicates the stylus angle on the screen. If the stylus is perpendicular to the screen or no stylus is being used, the value will be Pi/2. If the stylus is parallel to the screen, the value will be 0. Note: This property is only available for iOS devices that support 3D-Touch and are 9.1 or later.

timestampNumber

The time (in seconds) when the touch was used in correlation with the system start up. Note: This property is only available for iOS devices that support 3D-Touch and run 9.0 or later.

azimuthUnitVectorInViewXNumber

The x value of the unit vector that points in the direction of the azimuth of the stylus. Note: This property is only available for iOS devices that support the Apple Pencil and are 9.1 or later.

azimuthUnitVectorInViewYNumber

The y value of the unit vector that points in the direction of the azimuth of the stylus. Note: This property is only available for iOS devices that support the Apple Pencil and are 9.1 or later.

obscuredBoolean

Returns true if the touch passed through an overlapping window belonging to another app.

This is a security feature to protect an app from "tapjacking", where a malicious app can use a system overlay to intercept touch events in your app or to trick the end-user to tap on UI in your app intended for the overlay.

Fired as soon as the device detects a touch gesture against this view.

On Android and iOS, be aware that a row or table touch event and a table scroll event cannot occur concurrently. If a table begins to scroll during a touch event, the appropriate row or table touchcancel event fire before the scroll event begins.

Event properties
Event propertiesTypeDescription
indexNumber

Row index.

rowTitanium.UI.TableViewRow

Table view row object.

rowDataDictionary<Titanium.UI.TableViewRow>

Properties of the row.

When the row is created implicitly using a JavaScript dictionary object, use this property rather than row to access any custom row properties.

Here's an example of creating a row implicitly, which is not the recommended way.

var data = [{title:'Row 1', hasChild:true, color:'red', selectedColor:'#fff', special:'special 1'},];
var table = Ti.UI.createTableView({data: data});
xNumber

X coordinate of the event from the source view's coordinate system.

yNumber

Y coordinate of the event from the source view's coordinate system.

forceNumber

The current force value of the touch event. Note: This property only available for iOS devices that support 3D-Touch and run 9.0 or later.

maximumPossibleForceNumber

Maximum possible value of the force property. Note: This property is only available for iOS devices that support 3D-Touch and run 9.0 or later.

altitudeAngleNumber

A value which indicates the stylus angle on the screen. If the stylus is perpendicular to the screen or no stylus is being used, the value will be Pi/2. If the stylus is parallel to the screen, the value will be 0. Note: This property is only available for iOS devices that support 3D-Touch and are 9.1 or later.

timestampNumber

The time (in seconds) when the touch was used in correlation with the system start up. Note: This property is only available for iOS devices that support 3D-Touch and run 9.0 or later.

twofingertap

iPhoneiPadmacOS

Fired when the device detects a two-finger tap against the view.

Event properties
Event propertiesTypeDescription
xNumber

X coordinate of the event from the source view's coordinate system.

yNumber

Y coordinate of the event from the source view's coordinate system.