Что лучший способ состоит в том, чтобы сделать флажком UIButton?

Я пытаюсь сделать стандартный флажок для своего приложения для iPhone от a UIButton с заголовком и изображением. Изображение кнопки изменяется между изображением "непроверенным" и "проверенным" изображением.

Сначала я пытался разделить на подклассы UIButton но UIButton имеет нет -init*** метод для использования в моем -init метод.

Что лучший способ состоит в том, чтобы сделать это?

Заранее спасибо.

11
задан cduck 9 February 2010 в 07:06
поделиться

2 ответа

Подкласс UIButton не нужен. По своей конструкции Objective-C предпочитает композицию, а не наследование.

UIButton является подклассом UIControl, который имеет свойство выбранное . Это свойство можно использовать для включения/выключения флажка, точно так же, как и UISwitch.

Вы можете прикрепить действие к нажатой кнопке внутри события и выполнить переключение, что-то вроде этого:

// when you setup your button, set an image for the selected and normal states
[myCheckBoxButton setImage:checkedImage forState:UIControlStateSelected];
[myCheckBoxButton setImage:nonCheckedImage forState:UIControlStateNormal];

- (void)myCheckboxToggle:(id)sender
{
    myCheckboxButton.selected = !myCheckboxButton.selected; // toggle the selected property, just a simple BOOL
}
42
ответ дан 3 December 2019 в 00:48
поделиться

Также были проблемы с сортировкой ранее: мой случай был аккордеон и сортируемые внутри. Я не смог получить четкого ответа, но если посмотреть на какую-либо из реализаций дерева, они используют перетаскивание напрямую и не сортируются.

Основываясь на этом опыте - не очень точно я знаю - я бы согласился с акиллером и сказал: возьмите хороший плагин дерева вместо того, чтобы пытаться сделать это самостоятельно с сортируемым. jsTree достаточно хорош и должен делать работу - есть и другие, если по какой-то причине jsTree не соответствует вашим потребностям.

-121--3747395-

Антиузоры - это обычные способы, которыми люди склонны программировать неправильно, или, по крайней мере, не такой хороший способ.

-121--667083-

Пытались ли вы переопределить метод initWeyCoder, на тот случай, если он каким-то образом загружен с пера?

0
ответ дан 3 December 2019 в 00:48
поделиться