Я компоную размытый фон, а затем прокрутку, в которую я помещаю UILabels и т. Д., Некоторые из которых я хотел бы быть яркими, а некоторые из которых я хотел бы отображать в виде белого текста.Добавление UIVibrancyEffect в UIScrollview
Это прекрасно работает при статическом представлении, поскольку функции прокрутки не нужны. Однако, учитывая, что это необходимо, я сталкиваюсь с выбором размещения UILabel в vibrancy.contentView (и добавлении ярлыка) или в scrollview (и добавлении прокрутки), но не для обоих.
EDIT:
Вот обходной путь:
UIBlurEffect * blur = [UIBlurEffect effectWithStyle:UIBlurEffectStyleDark];
UIVibrancyEffect * vibrancy = [UIVibrancyEffect effectForBlurEffect:blur];
UIVisualEffectView * vs = [[UIVisualEffectView alloc] initWithEffect:blur];
[vs setFrame:self.view.bounds];
[self.view addSubview:vs];
scroller = [UIScrollView new];
scroller.frame = CGRectMake(0, 80, w, h-80);
scroller.showsHorizontalScrollIndicator = false;
scroller.showsVerticalScrollIndicator = false;
scroller.delegate = self;
[vs addSubview:scroller];
vsv = [[UIVisualEffectView alloc] initWithEffect:vibrancy];
[scroller addSubview:vsv];
UIView * view = [UIView new]; //WITHOUT VIBRANCY
[vsv addSubview:view];
UIView * view = [UIView new]; //WITH VIBRANCY
view.frame = CGRectMake(20, yOff, w-40, 50);
[vsv.contentView addSubview:view];
vsv.frame = CGRectMake(0, 0, w, yOff); //RESIZE ALL
scroller.contentSize = CGSizeMake(w, yOff);
Это работает, если нам не нужна прокрутка. Если это статический вид, мы можем просто разместить их там, где им нужно идти. Проблема заключается в сохранении прокрутки и вибрации. –
Итак, у вас есть статическое изображение, которое должно быть размытым и прокручиваемым контентом, который должен иметь как яркие, так и неживые блоки. Поместите эффект эффекта размытия в качестве основного содержимого UIScrollView (этот вид должен иметь тот же размер, что и размер содержимого прокрутки), чем когда вы добавляете нежирные блоки для просмотра прокрутки, добавьте его в режим размытия, и когда вам нужен блок с энергией, вы должны создать отдельный UIVisualEffectView с энергией для каждого яркого блока. Это сделает весь ваш блок прокручиваемым, а некоторые из них будут иметь эффект вибрации. – look1n
Да, это вариант, но он включает добавление дополнительных методов в scrollViewDidScroll, компенсирующих смещение. Я сохраняю размытие на спине, а затем добавляю скроллер, а затем добавляю виды вибрирования в скроллер. Оказывается, вам не нужно добавлять представление яркости в blur.contentView. –