2014-01-09 2 views
0

Я создал UISegmentedController в качестве дополнения к UITextField, чтобы разрешить добавление фракций в запись UITextField. В частности, я хочу, чтобы UISegmentedControl мог добавлять 0, .25, .5 или .75 к пользовательскому вводу в UITextField.Использование UISegmentedController для вставки определенных числовых значений в уравнение

Например, пользовательские входы 44 в UITextField и выбирает «ровный», «.25», «.5» или «.75», используя UISegmentedController. Это общее значение, например «44.25», необходимо будет преобразовать в ключ для получения соответствующего значения в NSDictionary, который будет использоваться при вычислении. Я ожидаю уточнения ответа, чтобы изменить окончательный номер на то, что можно использовать в расчете, но здесь основное внимание следует обратить на то, как сделать выбор UISegmentedControl, чтобы создать значение, которое можно добавить к моим вычислениям.

У меня нет никакого кода, увы, потому что я не уверен, как создавать целевые действия, потому что разные сегменты не позволяют создавать отдельные действия так, как говорят, UIBarButton элементов. Когда я пытаюсь контролировать-перетаскивать каждый раздел, XCode хочет создать действие для всего бара.

Я надеюсь, оптимистично, что это не уходит в прошлое. Я просто не знаю, с чего начать. Любая помощь будет принята с благодарностью.

Большое спасибо за ваше время.

+0

UISegmentedController не позволяет создавать отдельные действия для каждого сегмента. Если вы хотите добавить другое значение от имени сегмента UISegmentedController, для этого вы можете использовать метод selectedSegmentedIndex. Он возвращает вам индекс сегмента, который вы выбираете, и на основе индекса вы можете получить значение из массива для добавления в заданное пользователем значение. – Surjeet

ответ

0

A UISegmented управление имеет имущество, selectedSegmentIndex. В методе действий для контроля проверьте это свойство, чтобы увидеть, какой сегмент был выбран, и используйте его для своей логики.

0

Вы должны подключить segmentbar с действием под названием UIControlEventValueChanged (Не touchUpInside, который используется для кнопок) для действий, и это действие может быть как

- (IBAction)segmentSwitch:(id)sende 
{ 
     UISegmentedControl *segmentedControl = (UISegmentedControl *) sender; 
     NSInteger selectedSegment = segmentedControl.selectedSegmentIndex; 

     if (selectedSegment == 0) { 

     } 
     else{ 

     } 
} 

вашего 4 сегмента будет иметь индекс, как 0 - 3, который может задайте свое значение в словаре

+0

OK. Так я установил IBAction для всего UISegmentedControl в .h, а затем установить приведенный выше код с, если/еще в .m как 'если (selectedSegment == 0) { } еще {selectedSegment == 1 } еще {selectedSegment == 2 } else {selectedSegment == 3 } '? –

+0

да, и вы получите значение выбранного индекса – Retro

Смежные вопросы