Что значит вызывать initWithFrame для класса или подкласса UIView с CGRectZero? - PullRequest
4 голосов
/ 26 мая 2009

Я видел код, который вызывает initWithFrame из подкласса UIView (например, UILabel) с CGRectZero, и кажется, что все работает нормально. Что означает создание экземпляра UIView подкласса с 2D-точкой (что, как представляется, CGRectZero)?

1 Ответ

11 голосов
/ 26 мая 2009

Это просто означает, что вы создаете экземпляр представления без начального значения для его кадра.

Это делается, например, когда вы хотите создать экземпляр объекта представления и вам не нужно сразу помещать его в иерархию представлений. Выбор и установка кадра могут быть выполнены позже, используя setFrame:.

CGRectZero обычно используется при инициализации UITableViewCell в SDK 2.x, то есть. Экземпляр представления необходим в tableView: cellForRowAtIndexPath:, и нет необходимости предоставлять кадр при создании, потому что табличное представление автоматически позиционирует ячейку и делает ее оптимальным размером в более позднее время.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...