2017-02-14 91 views
0

有没有什么办法可以获得像某个NSView按需拍摄屏幕截图时产生的闪屏效果?我的问题不是flashing screen programatically with Swift (on 'screenshot taken')的重复,因为我需要osx的解决方案,而不是ios和方法是不同的。如何获得屏幕捕捉效果之类的屏幕闪光效果?

+1

的可能的复制[闪屏编程与斯威夫特(上“截图采取”)](http://stackoverflow.com/questions/28684549/flashing-screen-programatically -with-迅速-ON-截图采用) – Alladinian

回答

1

实现这一目标的方法是创建一个与屏幕尺寸相同的新UIView,并将其添加到视图的子视图中,然后将该视图的alpha设置为零(使用持续时间来实现动画效果预期效果)完成后,从超级视图中移除视图。

我在许多项目中都使用过这种技术,它的功能就像一个魅力。您可以使用视图的背景颜色来自定义闪光灯的外观。

1

这样的事情可能会奏效

func showScreenshotEffect() { 

let snapshotView = UIView() 
    snapshotView.translatesAutoresizingMaskIntoConstraints = false 
    view.addSubview(snapshotView) 

    let constraints:[NSLayoutConstraint] = [ 
     snapshotView.topAnchor.constraint(equalTo: view.topAnchor), 
     snapshotView.leadingAnchor.constraint(equalTo: view.leadingAnchor), 
     snapshotView.trailingAnchor.constraint(equalTo: view.trailingAnchor), 
     snapshotView.bottomAnchor.constraint(equalTo: view.safeAreaLayoutGuide.bottomAnchor) 
    ] 
    NSLayoutConstraint.activate(constraints) 

    snapshotView.backgroundColor = UIColor.white 

    UIView.animate(withDuration: 0.2, animations: { 
     snapshotView.alpha = 0 
    }) { _ in 
     snapshotView.removeFromSuperview() 
    } 
}