Как сделать прямой эффект для изменения цвета шрифта?

Я разрешаю, когда пользователь выбирает цвет шрифта из ActionSheetPicker, тогда цвет шрифта текста изменяется при изменении цвета. Я использую стороннюю библиотеку https://github.com/skywinder/ActionSheetPicker-3.0
Как мне это сделать?
Я должен изменить в сторонней библиотеке или сделать настройку ActionSheetPicker.

Есть ли какое-либо событие изменения значения, чтобы сделать эту функциональность?

Вот изображение на самом деле, что я хочу.

2 ответа

В готовом блоке showPickerWithTitle:rows:initialSelection:doneBlock:cancelBlock:originВы можете узнать, какой индекс или значение было выбрано, и соответствующим образом изменить цвет вашего текста.

[ActionSheetStringPicker showPickerWithTitle:@"Select a Color"
                                        rows:colors
                            initialSelection:0
                                   doneBlock:^(ActionSheetStringPicker *picker, NSInteger selectedIndex, id selectedValue) {                                       
                                      yourLabel.textColor = ...
                                    }
                                 cancelBlock:^(ActionSheetStringPicker *picker) {
                                      NSLog(@"Block Picker Canceled");
                                    }
                                      origin:sender];

Сначала в вашем проекте перейдите в папку Picker и откройте ActionSheetStringPicker.mзатем добавьте ниже код

- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view
{

     NSString *str_lbl = (self.data)[(NSUInteger) row];

    //NSLog(@"////////%@",obj);

    UILabel *label = (UILabel*) view;
    if (label == nil)
    {
        label = [[UILabel alloc] init];
    }

    [label setText:str_lbl];

    // This part just colorizes everything, since you asked about that.

    [label setTextColor:[UIColor whiteColor]];

    if ([str_lbl isEqualToString:@"Red"])
    {
        [label setTextColor:[UIColor redColor]];
    }
    else if([str_lbl isEqualToString:@"Green"])
    {
        [label setTextColor:[UIColor greenColor]];
    }
    else if([str_lbl isEqualToString:@"Blue"])
    {
        [label setTextColor:[UIColor blueColor]];
    }
    else if([str_lbl isEqualToString:@"Orange"])
    {
        [label setTextColor:[UIColor orangeColor]];
    }
    else
    {

    }

   // [label setBackgroundColor:[UIColor blackColor]];
    CGSize rowSize = [pickerView rowSizeForComponent:component];
    CGRect labelRect = CGRectMake (0, 0, rowSize.width, rowSize.height);
    [label setFrame:labelRect];

    return label;
}
Другие вопросы по тегам