uipickerview textcolor проблема и проблема яркости цвета
Для моего uipickerview у меня есть:
- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view {
CGSize size = [pickerView rowSizeForComponent:0];
UILabel *labelMain = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, size.width, size.height)];
labelMain.backgroundColor = [UIColor clearColor];
labelMain.font = [UIFont fontWithName:kFontSegoeSemiBold size:14];
labelMain.textColor = kColor_default_orangeText;
labelMain.textAlignment = NSTextAlignmentCenter;
int age;
// from
if (pickerView == self.pickerFrom) {
age = minAge + row;
}
// to
else {
age = minAge_pickerTo + row;
}
labelMain.text = [NSString stringWithFormat:@"%d", age];
return labelMain;
}
Я знаю, как сделать синий индикатор выделения (я поставил синий вид за uipickerview и установил цвет фона метки в clearColor.
Мне нужно иметь этот сборщик (от / до сборщика возраста) (синие вертикальные линии только для фотошопа):
Прямо сейчас я создал этот сборщик:
У меня есть 1 вопрос:
Я хочу иметь белый цвет текста для области в индикаторе выделения (или в центре окна выбора) и оранжевый цвет текста в другой области окна выбора. Является ли это возможным?
1 ответ
Решение
Попробуй это:
#pragma mark - UIPickerViewDelegate
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
UILabel *label = (UILabel *)[self.yourPickerOutlet viewForRow:row forComponent:component];
label.textColor = [UIColor whiteColor];
label.backgroundColor = [UIColor blueColor];
}
#pragma mark PickerView DataSource
- (NSInteger)numberOfComponentsInPickerView:
(UIPickerView *)pickerView
{
return 1;
}
- (NSInteger)pickerView:(UIPickerView *)pickerView
numberOfRowsInComponent:(NSInteger)component
{
return [dataSourseArray count];
}
- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view{
NSString* itemString = dataSourseArray[row];
UILabel *label;
if(view==nil){
label = [[UILabel alloc] initWithFrame:CGRectMake(5, 5, 310, 30)];
label.textColor = [UIColor blackColor];
label.backgroundColor = [UIColor clearColor];
label.shadowColor = [UIColor whiteColor];
label.shadowOffset = CGSizeMake(0,1);
label.textAlignment = NSTextAlignmentCenter;
}else{
label = (UILabel*) view;
}
label.text = itemString;
return label;
}