Many iOS setters have an “animated” variation, like setZoomScale: on UIScrollView, or, well, anything that has an animated: parameter.
My question is, a) How do I determine what duration is being used, and b) If necessary, how do I modify that duration?
Interesting question. From my experience, those durations do vary depending on the platform (iPad vs. iPhone) and are not documented or in any way accessible. A very common duration for many system animations seems to be around 0.35-0.40 seconds. Shorter animations often are exactly half that time. Longer animations often are exactly twice that time.
The rotation animation triggered by reorienting the device for example uses 0.4s when rotating landscape towards portrait (or vice versa) but 0.8s when rotating landscape left to landscape right (or portrait down to portrait up).
There are however exceptions. The keyboard show animation for example is offering its duration within the notification triggered. It is not modifiable but at least you can read it.