0

ユーザーが ActionSheetPicker からフォントの色を選択すると、色が変更されるとテキストのフォントの色が変更されます。サードパーティのライブラリhttps://github.com/skywinder/ActionSheetPicker-3.0
を使用 します。
サードパーティのライブラリを変更するか、ActionSheetPicker をカスタマイズする必要があります。

この機能を実現するための値変更イベントはありますか?

ここに私が実際に欲しい画像があります。 http://i.stack.imgur.com/J2bz0.png

4

2 に答える 2

0

完了ブロックでは、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];
于 2015-09-19T11:34:19.433 に答える
0

最初にあなたのプロジェクトで 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;
}
于 2015-09-19T11:35:30.470 に答える