Разделитель строк в UIPickerView
Как мне скрыть разделитель в моем окне выбора? Вот скриншот ,
Вот код для моего пользовательского UIPickerView.
- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view {
UILabel *label=[[UILabel alloc]init];
label.backgroundColor = [UIColor clearColor];
label.textColor = [UIColor whiteColor];
label.textAlignment=NSTextAlignmentCenter;
switch (component) {
case 0:
label.text=[_hourArray objectAtIndex:row];
label.font = [UIFont fontWithName:@"MYRIADPRO-REGULAR" size:70];
break;
case 1:
label.text=[_minutesArray objectAtIndex:row];
label.font = [UIFont fontWithName:@"MYRIADPRO-REGULAR" size:70];
break;
case 2:
label.text=[_ampmArray objectAtIndex:row];
label.font = [UIFont fontWithName:@"MYRIADPRO-REGULAR" size:15];
break;
default:
break;
}
return label;
}
-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView {
return 3;
}
Пожалуйста, помогите мне. Спасибо
2 ответа
Чтобы скрыть индикатор выбора для UIPickerView:
_pickerView.showsSelectionIndicator = FALSE;
Вы можете сделать это в коде (как выше) или в Интерфейсном Разработчике:
редактировать
Согласно документации Apple:
В iOS 7 и более поздних версиях вы не можете настроить индикатор выбора в представлении выбора. Индикатор выбора отображается всегда, поэтому установка этого свойства на NO не имеет никакого эффекта.
В Swift 5 вы можете использовать этот обходной путь. Просто добавьте этот код в свой класс viewcontroller:
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
for i in 1...2 {
myPickerView.subviews[i].isHidden = true
}
}
Создать подкласс UIPickerView
где вы переопределите didAddSubview
, Если добавленное подпредставление имеет высоту <= 1,0, то это разделитель, и вы можете скрыть и / или удалить его.