模糊 UIPickerView 的背景

Blurring a UIPickerView's background

我在点击 UITableViewCell 时显示 UIPickerView。我正在尝试向 pickerView 添加 UIVisualEffectView 以使其背景模糊。我试图得到的是:

https://www.evernote.com/shard/s111/sh/645d307f-c597-4dfa-890f-9404ed297e71/fd738fdf15cd956fcfa917e4311bfd1b

实际上得到的是:

https://www.evernote.com/shard/s111/sh/27440e85-2181-49e1-89e0-4b57e0ce3783/e6e2abae0edfb705e915b03e1b37e008

这是我用来创建模糊并将其附加到选择器的代码:

UIBlurEffect *blurEffect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleDark];
UIVisualEffectView *blurEffectView = [[UIVisualEffectView alloc] initWithEffect:blurEffect];
[blurEffectView setFrame:_myPicker.frame];
[_myPicker addSubview:blurEffectView];
[_myPicker sendSubviewToBack:blurEffectView];

请注意,即使调用 sendSubviewToBack,最终也会将模糊 放在 选项轮的前面.如果我在滚动视图时仔细观察,我可以看到选项在 后面 模糊。

如何在背景中正确地模糊并在顶部设置选项轮?

因为您不知道 UIPickerView 的确切视图层次结构,所以我只建议将您的 pickerView clearColor 作为 backgroundColor 并将选择器视图作为您的 blurEffectView 的子视图。这将是执行此操作的正确方法。