I’m trying to create a simple flexible layout:

My app has a UITextView (the red box) that will have a variable amount of text in it. Below it is a UIRoundedRectButton and a UILabel.
I have got the textview stretching based on the content inside already. I was wondering how I could achieve a flexible layout so the button/label are nudged down automatically if the textview has a lot of content inside.
Put everything inside another view, and set the autoresizing on your two orange views so that they have flexible top margins, and on the red view so it has a flexible bottom margin. Resize your container view when your text changes so it is big enough to hold everything.
Make the whole thing a tableview with 2 or more different types of cell. The first cell holds the text field, and its height is set according to your data length. The lower cells then move down automatically. If you are using iOS 5+, this is easy to achieve using static table views and outlets. You can turn off scrolling, dividers etc. to make it look like a normal screenful of content.