Aren I don't understand why you scroll the UIPanel and not the content. It doesn't make sense.
Any scroll you see (in any language), it's the content what scrolls.
When I use UIDragObject it's the content what scrolls (the correct behaviour) and I have been using it for a while with no problems at all. But with UIDragPanelContents you change the transform and the clipping coordinates of the UIPanel, so If I want to swap between GameObjects that act as "pages" I have the problem that because the panel has the transform modified it doesn't show the "page" from the beginning (Y = 0).
Sorry If my explanation was not clear.
An speaking of events I don't understand either two events behaviour:
UICheckbox: Why you pass "bool checked" as param? Why not the sender? If you want to listen to one checkbox it's ok but if you want more than one you don't know which it was. I know that it's easier to pass the flag and not the sender because then you need to get the component each time but in some cases it could be necessary.
UIInput: The same problem, in this case it doesn't have parameters.
My situation is that in my project I have a checklist with so many checkbox and inputs so I need to know which is which that triggers each event.
Keep working!!!!