If you look at UICenterOnChild, line 252:
#if UNITY_EDITOR
if (!Application.isPlaying)
{
panelTrans.localPosition = panelTrans.localPosition - localOffset;
Vector4 co = mScrollView.panel.clipOffset;
co.x += localOffset.x;
co.y += localOffset.y;
mScrollView.panel.clipOffset = co;
}
else
#endif
{
SpringPanel.Begin(mScrollView.panel.cachedGameObject,
panelTrans.localPosition - localOffset, springStrength).onFinished = onFinished;
}
Note how on top it does it immediately, while at the bottom it does it smoothly.
Just use the top code.