Caching these properties during object initialization is expensive and can trigger a layout. Lazily caching them in first use mitigates this problem.
<rdar://problem/97912919>