UIView框架与引用框架不在同一位置

时间:2015-01-23 13:39:02

标签: ios objective-c xcode swift uivisualeffectview

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

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

我无法弄清楚为什么效果视图与代码所暗示的filterPanel完全不同。有什么想法吗?

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

enter image description here

1 个答案:

答案 0 :(得分: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.