Does using (for example) UIWebView
's subviews count as using undocumented APIs? There is no documentation on the fact that the first subview of a UIWebView
is a UIScrollView
. Does that mean that I am not allowed to add children to this UISCrollView
?
I'm not using any private calls, but it isn't documented anywhere. In iOS 3.1 the first subview of a UIWebView
is an instance of a class called "UIScroller"
, which is almost identical to the UIScrollView
, but not documented anywhere. What is allowed exactly?
For complex views declared in UIKit and other system frameworks, any subviews of the view are generally considered private and subject to change at any time. Therefore, you should not attempt to retrieve or modify subviews for these types of system-supplied views. If you do, your code may break during a future system update.
From App Store Review Guidelines:
Apps that do not use system provided items, such as buttons and icons, correctly and as described in the Apple iOS Human Interface Guidelines may be rejected
Taken together, I read these as saying: You can look at the subviews of standard components, but mess with them at your own peril -- things will change with no notice, and you'll have nobody to blame but yourself when they break. Furthermore, if you do modify a standard component in a way that's out of keeping with what Apple designed and users expect, your app will likely be rejected.
Modifying the private subviews of UIWebView seems like a poor plan.