| My Notes
- Screen: 320 x 480
- Nav Bar: 320 x 44
- Plain Table Cell: 320 x 43
- Grouped Table Cell: 300 x 43
- In edit mode, the cell contents are shifted right 32.
- Keyboard: 320 x 216
- DatePicker: 320 x 216
- Toolbar: 320 x 44
- Tab bar: 320 x 49
- Largest Tab Bar Icon Size: 48 x 32
- iPhone 3: 480 x 320
- iPhone 4: 960 x 640
- iPhone 5: 1136 x 640
- iPad (1): 1024 x 768
- iPad 2: 1024 x 768
- iPad (3): 2048 x 1536
- iPad (4): 2048 x 1536
- iPad Mini 1: 1024 x 768
- Certificate (= developer)
- App Id:
* - matches anything
com.companyname.* - matches all apps from this company, good for beta testing.
com.companyname.AppName - matches a single app. Required for push and
(In the case of a single contained image:)
- The scroll view implements scrolling by applying a coordinate transform to its subview
- The scroll view implements zooming by reframing its subview. That is, it reframes the
view passed to viewForZoomingInScrollView:.
- Consider ignoring [scrollView contentSize] and look at [content frame].size instead.
- Setting the zoomScale will change the frame of the content, so when resetting a scroll view,
set the zoomScale and then the content's frame to the correct size for that scale.
Again, ignore contentSize.
- Don't reload a table cell while there is an active text editor in a cell.
In 3.1, the text editor will (annoyingly) lose and gain focus. In 4.1, it works ok unless the
active text editor is in the reloaded cell, in which case the reload is ignored.
Instead, do [tableView cellForRowAtIndexPath:] and update the views.
- Note that [tableView cellForRowAtIndexPath:] will return nil if the cell is not on the
- Don't make a TextField subclass its own TextFieldDelegate. (Pressing a key will
enter an infinite loop looking for the right UIResponder or something.)
C o m m e n t s :