• Please enter your DISQUS subdomain in order to use the 'Disqus Comments (for Joomla)' plugin. If you don't have a DISQUS account, register for one here

Core FileMaker Blog

Keep up to date with CoreSolutions

FileMaker Go - iOS Gestures Using a Slide Control

Recently, we had a client ask for the swipe-to-delete gesture that is standard on any iOS device for their FileMaker Go database. At first I thought gestures were not available in FileMaker, but with the release of FileMaker Go 13, this feature became possible.

The swipe gestures are fairly limited without any techniques. There were two gestures introduced in FileMaker Go 13.

    1) A single finger swipe to change control panels in a slide control.

    2) A two finger swipe to change records.

This got me interested; I started looking into the slide control and testing out all kinds of different scenarios. First, I put the slide control across the whole width of the row on a list, and put all fields on two separate panels; one with just fields and the other with the fields and a delete button. Surprisingly, what this did was move the entire panel including the fields; this is not consistent with iOS.

First Panel
First slide panel example

I then decided to try putting the fields in the background with a slide control on top with two transparent panels. The second panel has a delete button and with a slide right to left you can see the delete button just like any other iOS application.

Second Panel after swipe gesture
second slide panel example

To make it further consistent with iOS, I put an OnPanelSwitch script that sets a global variable to the recordID. I then hide the delete button when the global does not equal the globalID, thus it will only show on the record selected and not all records.

The next thing I did was put a layout script trigger for OnRecordLoad to use the same set globalID script, therefore when you select a different record, the delete button object is updated and now only visible on the current record.

Hide calculation:
$$recordID ≠ Get(RecordID)
Set Global script:
Set Variable [$$recordID; Value: Get(RecordID)]

Refresh Window []

After swipe to second panel, then selecting a different record.
After swipe to second panel, then selecting a different record

Thanks for Reading!

Leave a comment