除一个Cell外,模糊TableView

时间:2016-11-06 11:45:56

标签: xcode uitableview xcode8 blur

除了单个表格视图单元格外,如何模糊整个视图?

效果应类似于3D触摸模糊效果。例如。邮件应用:

Blur effect

1 个答案:

答案 0 :(得分:1)

  • 模糊效果恰好适用于整个屏幕,但适用于邮件应用中的选定单元格。 如果您只想将效果应用于表格视图,则可以在每个单元格内容的顶部显示模糊视觉效果,并将其效果设置为nil

    cell.blurView.effect = nil
    

    选择一个单元格时启用。为此,请使用didSelectRow函数并重新加载数据,以便最终获得所需的效果。 (您甚至可以使用UIView.animate())

    为变化设置动画
    UIView.animate(withDuration: 0.5, animations: {
         cell.blurView.effect = UIBlurEffect.init(style: .light)
    }
    
  • 问题是我告诉你的解决方案效率不高,但我可以想到另一个: 考虑使用两个模糊视图,当没有选择单元格时显示没有效果,然后您可以在选择单元格后立即设置两个模糊视图,以便第一个模糊视图将整个屏幕部分放在单元格的顶部,另一个涵盖了底部。

  • 好的最后一个想法: 你可以在didSelectRow方法中将blurView添加到整个屏幕

    UIApplication.shared.keyWindow?.addSubview(blurView)  
    

    然后在其上添加单元格,当然,例如在点击模糊视图时删除所有这些

希望它有所帮助;)