Не наследовать UIControl. То, что вы хотите, это UIButton "пользовательского" типа. Загрузите его с вашим «неосвещенным» изображением в IB (или программно в -viewDidLoad
- вы также можете установить его в соответствии с его данными, если вы пришли сюда с этим свойством, уже «проверенным»).
Направьте его событие touchUpInside на метод с именем -(void)toggleCheckBox
, и в этом методе переключите любую настройку, которую вы переключаете (вероятно, свойство BOOL объектов, которые вы перечисляете), и переключите состояние "светится / не светится" изображения кнопки, используя метод -setImage: forState:
. Используйте состояние управления UIControlStateNormal
.
Я делаю нечто похожее, когда я позволяю людям нажимать кнопку, чтобы переключать «любимый» статус вещи («thisEvent» - участник множества местных культурных / художественных мероприятий), на которые они смотрят:
- (IBAction)toggleFavorite {
if (self.thisEvent.isFavorite == YES) {
self.thisEvent.isFavorite = NO;
[self.favoriteButton setImage:[UIImage imageNamed:@"notFavorite.png"] forState:UIControlStateNormal];
}
else {
self.thisEvent.isFavorite = YES;
[self.favoriteButton setImage:[UIImage imageNamed:@"isFavorite.png"] forState:UIControlStateNormal];
}
}