On 12/7/12 12:17 PM, Graham Samuel wrote:

Fumbling around, I have made scrollers work in the past, but I
realise that I don't know what I'm doing, so success has come by
luck, mostly. What I need is a nice clear "how to" description of
dealing with iOS scrolling. It may well exist, but so far i haven't
found it. Can anyone point me in the right direction?

There's an example stack in the resouces that ship with LiveCode. Under the Help menu choose Example Stacks and Resources which opens a Finder window. Then look for the Scroller Example stack.

Most everything is in there, though there's not a lot of explanation. I was confused about contentRect until I was told that the rect is relative to the scoller control. That is, the 0,0 topleft is always the topleft of the group or field you are scrolling; it isn't a card location. So if you want the entire content of the group or field to scroll, the scroller's contentRect will always start with 0,0 and the last two items will be the formattedWidth and formattedHeight of the group/field.

Basic concepts are:
Ensure that the layermode for the group is "dynamic" and acceleratedRendering is on

Set the scroll(s) of the underlying group or field to 0
Create the scroller
Set the rect of the scroller to the visible area you want to display
Set the contentRect of the scroller to the total area that should scroll (as per above)
Set the scroll of the scroller to 0 -- may not be necessary but I do it
Set any other properties you want (bounce, colors, paging, etc. Here's where you'd disable vertical scrolling if you don't want it) Set the visible of the scroller to TRUE -- for some reason the default is false, which means the scroller won't respond

If you need to restore a previous scroll position, set the scroll(s) of both the group and the scroller to a previously saved scroll amount as a last step.

I've found it best to delete the scroller when changing cards, and re-create it when opening the card.

You probably already have a scrollerDidScroll handler. It passes the x,y position of the scroller and you just set the scroll of the group to the same thing. If you don't want vertical scrolling, just ignore the Y parameter and only change the horizontal position of the group.

--
Jacqueline Landman Gay         |     jac...@hyperactivesw.com
HyperActive Software           |     http://www.hyperactivesw.com

_______________________________________________
use-livecode mailing list
use-livecode@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode

Reply via email to