Well, you can technically do this, but this is not supported. You better follow Daveโs suggestion or read if you insist.
If you examine subviews from UIRefreshControl , then it turns out that it contains one subview, of the _UIRefreshControlDefaultContentView class.
If you then check the subviews of this content in an updated state, it contains the following:
UILabelUIActivityIndicatorViewUIImageViewUIImageView
So, technically, in your callback to the UIControlEventValueChanged event UIControlEventValueChanged you can do something like this:
UIActivityIndicatorView *spinner = [[[[self.refreshControl subviews] lastObject] subviews] objectAtIndex:1]; spinner.activityIndicatorViewStyle = UIActivityIndicatorViewStyleWhite;
And it will work. It also does not violate the Application Validation Guide, since it does not use a private API (viewing subheadings of a presentation and playing with them using a public API is legal). But keep in mind that the internal implementation of UIRefreshControl can change at any time, and your code may not work or even crash in later versions of iOS.
source share