0
var visualEffectview = UIVisualEffectView(effect: UIBlurEffect(style: .Light)) as UIVisualEffectView
visualEffectview.frame = self.filterPanel.frame
self.mapView.addSubview(visualEffectview)

我正在尝试在地图的一部分上放置模糊效果。上面的代码完成了这项工作,但是效果的 Y 坐标略有偏移。这是因为需要进行某种形式的转换吗?

filterPanel我无法弄清楚为什么效果视图与代码所建议的位置不完全相同。有任何想法吗?

箭头显示模糊开始的位置(您可以看到它在下方偏移了几个像素,应该从包含分段控件的视图顶部开始):

在此处输入图像描述

4

1 回答 1

0

self.filterPanel和self.mapView的0,0坐标是同一个点吗?

如果 0,0 在两个视图中不是屏幕上的相同像素,那么当您将效果添加为子视图时,它会在您添加之前设置框架时出现偏移。

我认为您可以通过执行类似的操作来纠正此问题

visualEffectView.frame=
  [self.filterPanel convertRect:self.filterPanel.frame toView:self.mapView];
then add it as a subview.
于 2015-01-23T14:02:06.393 回答