# Titanium.UI.iOS.ViewAttachmentBehavior

> Dynamic behavior to support connections between two items.

- Source: https://titaniumsdk.com/docs/sdk/13.3.1/Titanium.UI.iOS.ViewAttachmentBehavior
- Titanium SDK version: 13.3.1
- Kind: proxy
- Platforms: iPhone, iPad, macOS
- Since: Titanium SDK iPhone 3.2.0, iPad 3.2.0, macOS 9.2.0
- Extends: Titanium.Proxy
- Inheritance: Titanium.Proxy

A view attachment behavior creates a dynamic connection between two items. To define a view
attachment behavior:

  1. Use the [Titanium.UI.iOS.createViewAttachmentBehavior](https://titaniumsdk.com/docs/sdk/Titanium.UI.iOS.md#createViewAttachmentBehavior) method to create and define a behavior.
  2. Set the [anchorItem](https://titaniumsdk.com/docs/sdk/Titanium.UI.iOS.ViewAttachmentBehavior.md#anchorItem) and
     [item](https://titaniumsdk.com/docs/sdk/Titanium.UI.iOS.ViewAttachmentBehavior.md#item) properties.
  3. Add the behavior to the [Animator object](https://titaniumsdk.com/docs/sdk/Titanium.UI.iOS.Animator.md).

To create a dynamic connection between an item and anchor point, use [Titanium.UI.iOS.AnchorAttachmentBehavior](https://titaniumsdk.com/docs/sdk/Titanium.UI.iOS.AnchorAttachmentBehavior.md).

## Example: Simple Example

The following example anchors a green block to either a red or blue block.  Click on the red
or blue block to change which one the green block is anchored to.

<img src="./viewattachment.gif" height= 275" style="border:1px solid black"/>

``` js
var win = Ti.UI.createWindow({backgroundColor: 'white', fullscreen: true});

// Create an Animator object using the window as the coordinate system
var animator = Ti.UI.iOS.createAnimator({referenceView: win});

var redBlock = Ti.UI.createView({
    backgroundColor: 'red',
    width: 25,
    height: 25,
    top: 10,
    left: 75
});
// Snap the red block so it does not move
var redSnap = Ti.UI.iOS.createSnapBehavior({
    snapPoint: {x: 75, y: 10},
    item: redBlock,
    damping: 0.0
});
animator.addBehavior(redSnap);

var greenBlock = Ti.UI.createView({
    backgroundColor: 'green',
    width: 25,
    height: 25,
    top: 50,
});

var WIDTH = Ti.Platform.displayCaps.platformWidth;
var blueBlock = Ti.UI.createView({
    backgroundColor: 'blue',
    width: 25,
    height: 25,
    top: 10,
    right: 75
});
// Snap the blue block so it does not move
var blueSnap = Ti.UI.iOS.createSnapBehavior({
    snapPoint: {x: WIDTH - 75, y: 10},
    item: blueBlock,
    damping: 0.0
});
animator.addBehavior(blueSnap);

// Anchor the green block to the red one when the app starts
var anchor = Ti.UI.iOS.createViewAttachmentBehavior({
    anchorItem: redBlock,
    item: greenBlock
});
animator.addBehavior(anchor);

// Simulate Earth's gravity to allow the green block to swing
var gravity = Ti.UI.iOS.createGravityBehavior({
    gravityDirection: {x: 0.0, y: 1.0}
});
gravity.addItem(greenBlock);
animator.addBehavior(gravity);

// Change the anchor item when clicking either the red or blue block
redBlock.addEventListener('click', function(e){
    anchor.anchorItem = redBlock;
});
blueBlock.addEventListener('click', function(e){
    anchor.anchorItem = blueBlock;
});

// Start the animation when the window opens
win.addEventListener('open', function(e){
    animator.startAnimator();
});

win.add(redBlock);
win.add(greenBlock);
win.add(blueBlock);
win.open();
```

## Properties

### anchorItem

- Type: Titanium.UI.View
- Platforms: iPhone, iPad, macOS

Item to use as the anchor in this behavior.

### anchorOffset

- Type: Point
- Platforms: iPhone, iPad, macOS
- Default: `(0,0)`

Offset from the center point of the anchor item for the attachment.

### damping

- Type: Number
- Platforms: iPhone, iPad, macOS
- Default: `0`

Amount of damping to apply to the attachment behavior.

### distance

- Type: Number
- Platforms: iPhone, iPad, macOS
- Default: `0`

Distance, in points, between the two attachment points.

### frequency

- Type: Number
- Platforms: iPhone, iPad, macOS
- Default: `0`

Frequency of oscillation for the behavior.

### item

- Type: Titanium.UI.View
- Platforms: iPhone, iPad, macOS

Item to connect to use the attachment behavior.

### itemOffset

- Type: Point
- Platforms: iPhone, iPad, macOS
- Default: `(0,0)`

Offset from the center point of the item for the attachment.

## Inherited members

6 members are inherited. Each is documented on the type that declares it.

- [Titanium.Proxy](https://titaniumsdk.com/docs/sdk/13.3.1/Titanium.Proxy.md): `addEventListener`, `apiName`, `applyProperties`, `bubbleParent`, `fireEvent`, `removeEventListener`

---

- This corpus documents Titanium SDK 13.4.1. Anything here that does not name a version describes 13.4.1.
- Titanium is maintained by TiDev. The Appcelerator toolchain is retired: there is no `appc` CLI, no Appcelerator Studio and no hosted build service. The supported CLI is `titanium` on npm, invoked as `ti`.

