Я создал переключатель в cellForRowAtIndexPath вот так.

UISwitch *switchView = [[UISwitch alloc] initWithFrame:CGRectZero];

CGRectZero эквивалентен CGRectMake (0,0,0,0). Но, виден переключатель в нормальном размере. Актуальный размер я не указал. Пожалуйста, объясните мне, как работает приведенный выше код.

7
user698200 27 Авг 2011 в 19:04

2 ответа

Лучший ответ

UISwitch не настраивается, это касается и размера.

UISwitch отменяет initWithFrame: и устанавливает размер, соответствующий элементу управления. Компоненты размера данного прямоугольника игнорируются.

5
Felix 27 Авг 2011 в 15:13

Любой объект UIView может переопределить размер кадра, реализовав sizeThatFits: метод UIView. Фактически, справочник по классу UIView Говорит, что:

объект UISwitch возвращает значение фиксированного размера, которое представляет стандартный размер представления переключателя

0
progrmr 27 Авг 2011 в 17:07