Problema de desempenho com o UIVisualEffectView no UITableViewCell

9

Eu tenho o UITableView com 10 imagens grandes como o Instagram e eu tenho um pouco de desfoque nessas imagens. Eu adiciono meus efeitos visuais UITableViewCell assim;

_blurButtonEffect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleLight];

_visualButtonEffectView = [[UIVisualEffectView alloc] initWithEffect:_blurButtonEffect];
_visualButtonEffectView.layer.cornerRadius = 10.0f;

_visualEmojiEffectView = [[UIVisualEffectView alloc] initWithEffect:_blurButtonEffect];
_visualEmojiEffectView.layer.cornerRadius = 24.0f;

_visualButtonEffectView.layer.masksToBounds = YES;
_visualEmojiEffectView.layer.masksToBounds = YES;

_visualButtonEffectView.frame = CGRectMake(20.0f, _button.frame.origin.y + 7.0f, 48.0f, 48.0f);
_visualEmojiEffectView.frame = CGRectMake(_emoji.frame.origin.x - 4.0f, _button.frame.origin.y + 22.0f, ([UIScreen mainScreen].bounds.size.width/2) - 25.0f, 30.0f);

Se o título do botão for null, mostrarei _visualEmojiEffectView e oculte _visualButtonEffectView. Caso contrário, _visualButtonEffectView é sempre mostrado. Enquanto eu estou rolando meu UITableView, o desempenho é perfeito, mas esses efeitos desfocados mostram-se tão irritantes, que parecem estar piscando com cada movimento de rolagem e toques. Eu posso bloquear isso com isso na célula;

self.layer.shouldRasterize = YES;
self.layer.rasterizationScale = [UIScreen mainScreen].scale;

Se eu for rasterizar meu celular assim, o efeito de desfoque funciona perfeito, mas o desempenho de rolagem é horrível mesmo no iPhone 6. Qual é a maneira correta de configurar o UIBlurEffectView com o UITableViewCell?

    
por Kemal Can Kaynak 03.11.2014 в 14:22
fonte

1 resposta

2

Eu sei que é tarde demais para responder, mas ainda espero que isso ajude alguém. Você pode dar uma cor de plano de fundo branco à visualização do efeito visual com um alfa muito baixo. Algo parecido com isto:

[_visualButtonEffectView setBackgroundColor:[UIColor colorWithWhite:1.0 alpha:0.2]];

Você também pode tentar usar o UIToolbar em vez de uma visualização de efeito visual. Não dá exatamente o mesmo efeito, mas ainda será bom o suficiente.

    
por jarora 10.05.2015 / 14:47
fonte