Оказывается, вы можете создать пользовательский переключатель UIS со следующими элементами:
- A UIScrollView
- A UIButton
- Два UILabels
- Фоновое изображение
- Булево значение
Сначала вам нужно будет добавить QuartzCore.framework в ваш проект и #import <QuartzCore/QuartzCore.h>
в ваш контроллер представления.
Затем добавьте UIScrollView к вашему виду, используя Interface Builder. ScrollView будет вашим пользовательским UISwitch.
Затем добавьте кнопку и две метки в ScrollView. Одна метка будет означать «да», другая - «нет».
Добавьте изображение к кнопке и установите его тип на пользовательский. Это изображение, которое я использую:
Поместите метки над сине-белой областью изображения. Настройте ScrollView так, чтобы он был достаточно большим, чтобы показать синюю часть изображения и ручку большого пальца.
Добавьте следующую строку для viewDidLoad:
self.mySwitch.layer.cornerRadius = 13.5;
mySwitch - это имя ScrollView, а 13.5 - половина высоты ScrollView. Вышеприведенный оператор изменяет ScrollView, чтобы иметь закругленные концы, как UISwitch.
Чтобы сделать пользовательский переключатель активным, вам нужно привязать событие «Touch Up Inside» к IBAction. Вот код, который я использую в обработчике событий:
-(IBAction)mySwitchButton:(id)sender {
self.myValue = !self.myValue;
CGPoint scrollPoint = CGPointMake((self.myValue)? 43.0: 0, 0.0);
[mySwitch setContentOffset:scrollPoint animated:YES];
}
Где myValue - логическая переменная, которая содержит состояние вашего переключателя, а 43.0 - это число точек, на которые вам нужно переместить изображение, чтобы перевести переключатель в положение выключения.
Вот и все!