Я пытаюсь добавить эффект вибрации к текстовой метке моей таблицы представления таблицы, и это похоже на работу, но не совсем правильно.Добавление UIVibrancyEffect в ячейку UITableView
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"UITableViewCell"];
NSDictionary *jobDictionary = [self.jobs objectAtIndex:[indexPath row]];
if (cell == nil) {
cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"UITableViewCell"];
}
if (cell) {
cell.backgroundColor = [UIColor clearColor];
cell.textLabel.textColor = [UIColor whiteColor];
cell.textLabel.text = [jobDictionary objectForKey:@"job"];
UIBlurEffect *blur = [UIBlurEffect effectWithStyle:UIBlurEffectStyleDark];
UIVisualEffectView *blurView = [[UIVisualEffectView alloc]initWithEffect:blur];
blurView.frame = cell.bounds;
[cell addSubview:blurView];
UIVisualEffectView *vibrantView = [[UIVisualEffectView alloc]initWithEffect:[UIVibrancyEffect effectForBlurEffect:blur]];
vibrantView.frame = blurView.bounds;
[vibrantView.contentView addSubview:cell.textLabel];
[blurView.contentView addSubview:vibrantView];
}
return cell;
}
Ваше предположение о правильности размера экрана. Я просто посмотрел на него на iPhone 5, и похоже, что я хочу этого. – raginggoat
Да, это проблема, с которой я сталкиваюсь все время. -willDisplayCell может отлично работать для вас, если вы выясните, как убедиться, что представление добавляется только один раз. Альтернативой подклассу, если вы действительно пытаетесь избежать его по какой-то причине, может быть предоставление представления, которое вы добавляете в тег, и добавляете его только в том случае, если ячейка не содержит subview с этим тегом. Тогда проблема заключается в том, что вы будете выполнять итерации над подзонами этой ячейки в методе, который действительно должен выполнить свою работу как можно быстрее, чтобы не сделать таблицу вялой. – Dare