Единственная проблема здесь в том, что вам нужно использовать 2 изображения для переключения. Также вы не можете использовать выделенное свойство, потому что UIButton (UIControl) автоматически устанавливает это свойство под капотом, а именно: touchBegan: , touchMoved: и т.д. методы. Лучший способ, который я предлагаю, это простое использование подклассов:
@interface ToggleButton : UIButton
@end
@implementation ToggleButton
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
[super touchesBegan:touches withEvent:event];
self.highlighted = self.selected = !self.selected;
}
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event{
[super touchesMoved:touches withEvent:event];
self.highlighted = self.selected;
}
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{
[super touchesEnded:touches withEvent:event];
self.highlighted = self.selected;
}
- (void)setSelected:(BOOL)selected{
[super setSelected:selected];
self.highlighted = selected;
}
@end
Этого вполне достаточно, чтобы ваш тумблер работал