我在label
中有scrollView
。滚动和位于label
和文本上方的状态栏时,我想模糊状态栏背景。怎么做?
UPD
如果我使用此代码,一切正常,但我的界面冻结。如何解决?
代码:
func scrollViewDidScroll(_ scrollView: UIScrollView) {
if scrollView.contentOffset.y > 20{
let blurEffect = UIBlurEffect(style: UIBlurEffectStyle.light)
let blurEffectView = UIVisualEffectView(effect: blurEffect)
blurEffectView.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(blurEffectView)
blurEffectView.leadingAnchor.constraint(equalTo: view.leadingAnchor).isActive = true
blurEffectView.widthAnchor.constraint(equalTo: view.widthAnchor).isActive = true
blurEffectView.topAnchor.constraint(equalTo: view.topAnchor).isActive = true
blurEffectView.bottomAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor).isActive = true
print("fsdjfknsdkfbksjdbfjksdfklsndflknsdlfnlksdfsdfsdf)")
}
答案 0 :(得分:0)
检查scrollview的contentOffset属性和scrollview委托的didScoll方法。
也许您可以在滚动视图的顶部添加模糊效果视图,并隐藏或显示偏移量是否大于20(即状态栏的高度)
编辑
根据代码,每次滚动视图滚动时都在添加,因此即使滚动视图滚动了1像素,模糊效果视图也会被添加,只需在视图负载的某个地方添加一次即可,从而使模糊效果实例变为全局,并在此提供的方法(也称为didscroll)中进行隐藏/显示相同的操作。还必须添加其他条件。