If you’re having trouble getting Doxygen to parse NS_ENUM
statements, here’s the config file magic:
ENABLE_PREPROCESSING = YES
MACRO_EXPANSION = YES
PREDEFINED = "NS_ENUM(_type, _name)=enum _name : _type"
You may or may not want to enable EXPAND_ONLY_PREDEF
to only expand that one macro.
The best description of how Cocoa’s views are designed that I could find from Apple is in the Cocoa Views Guide PDF in the chapter called View Geometry. If you’re trying to get your head around what a CGRect
is and why self.view.frame.origin.x++
doesn’t work, that’s required reading. (A hint to the latter: view.frame is return-by-value; CGRect is a struct, self is an object.)
That said, here’s a handy graphic to not only help you get your head around when to use frame
and when to use bounds
, but also what they mean in the grand scale of things. Also included are some visual guides on when to use some handy CGGeometry.h
functions to do some work for you.