I want to make my whole ViewController grey except I want the top area where it shows CARRIER and the current time to remain white. Is the only way just to stick a View that covers everything except that area, and set it to grey, or is there some way to set the entire background to grey and only set that one strip to white
Best How To :
The "top area with clock" is called a status bar. That bar is transparent and is displayed as the topmost view in a window. This means that nothing can cover the status bar.
You can show, hide and change the appearance of the status bar (changing the content from Light to Dark implies that the text colour within your status bar will be either white or black) by sending the appropriate message to the
[UIApplication sharedApplication] object.
Now that you know a little bit about the status bar, I can answer your question:
In order to have a different background under the status bar than on the rest of the screen, you need to add a view with the frame
[[UIApplication sharedApplication] statusBarFrame]. Then you can colour the view property of the view controller differently than the view underneath the status bar.