I really like iOS 7’s
bottomLayoutGuide. They’re immensely useful. But in my adventures with Auto Layout, I’ve often wished that Apple had added a third member to this exclusive group: a sort of
It’s a bit of a drag to have to set up
NSNotification observers just to be able to keep your textfield on the screen when the keyboard barges into view. So I added a
UIViewController myself. You can check it out on GitHub here: jpsim/JPSKeyboardLayoutGuide.
If you’ve used Apple’s layout guides before, you’ll know that they’re actually just
id’s that conform to the
UILayoutSupport Protocol. So I figured that having the guide just be a zero-sized UIView was probably the best way to go. This way, I can easily add it to the view and bind it to the keyboard frame by modifying a constraint’s constant.
In all honesty, I dislike the inheritance approach I took here; it seems like the easy way out. I’m hoping that either myself or a contributor will have a stroke of genius and find a composition-based way to do this. Perhaps a starting point would be a category on
UIViewController along with an associated object as the
keyboardLayoutGuide property… But then the
NSNotifications will be troublesome. If you have an idea, please fork and send a PR or open up an issue on github!