- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在尝试制作一个带有 UIVisualEffectView
subview 的 UIView
,并以 UIBlurEffect
作为效果。 View 在屏幕的一侧创建,然后使用动画滑入。
在模拟器上一切正常(我已经在 iPhone 4S 和 iPhone 6 上测试过)但是在我的手机(iPhone 6)上模糊并没有模糊,它看起来更像是带有 alpha
为 0.5。此外,当我截取设备的屏幕截图或从主屏幕打开它时,会在再次开始一致渲染之前为该单帧渲染模糊。
这是当前 View 的屏幕截图:
但是在设备上不存在模糊,它本质上只是一个黑暗、透明的 View 。
这是我用来初始化 View 的代码,blurView
和 vibrancyView
属性被声明为全局变量:
init(left: Bool){
self.left = left
let screenSize = UIScreen.mainScreen().bounds.size
var rect: CGRect
if left{
rect = CGRectMake(-screenSize.width*0.3, 0, screenSize.width*0.3, screenSize.height)
}else{
rect = CGRectMake(screenSize.width, 0, screenSize.width*0.3, screenSize.height)
}
super.init(frame: rect)
let blurEffect = UIBlurEffect(style: UIBlurEffectStyle.Dark)
blurView = UIVisualEffectView(effect: blurEffect)
blurView.frame = CGRectMake(0, 0, self.frame.width, self.frame.height)
self.addSubview(blurView)
let vibrancy = UIVibrancyEffect(forBlurEffect: blurEffect)
vibrancyView = UIVisualEffectView(effect: vibrancy)
vibrancyView.frame = blurView.frame
blurView.addSubview(vibrancyView)
self.userInteractionEnabled = true
}
然后将包含 blurView 的 superView 移动到:
func moveIn(){
UIView.animateWithDuration(0.3, animations: { () -> Void in
var center = self.center
if self.left{
center.x = UIScreen.mainScreen().bounds.size.width*0.15
}else{
center.x = UIScreen.mainScreen().bounds.size.width*0.85
}
self.center = center
})
}
正如我之前所说,动画等效果很好,但 blurView 不会模糊。
我不确定这是怎么回事,这让我觉得这与渲染帧有关,但我不是大师,所以如果有人有任何想法,我将不胜感激。
最佳答案
为了解决这个问题,这是因为我在大部分应用程序中使用 SpriteKit,因此使用 SKView 而不是 UIView。我意识到我没有在问题中提到这一点,但我不知道这会成为一个问题。显然 SKView 遵循不同的渲染路径,因此不会变得模糊,建议的方法是 effectnode。
关于ios - UIBlurEffect 在设备上不模糊但在模拟器中有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28202433/
所以我使用这段代码向我的 View 添加了一个UIBlurEffect let visualEffectView2 = UIVisualEffectView(effect: UIBlurEffect(
我正在尝试制作一个带有 UIVisualEffectView subview 的 UIView,并以 UIBlurEffect 作为效果。 View 在屏幕的一侧创建,然后使用动画滑入。 在模拟器上一
我目前使用自定义 UIPresentationController 在三分之一的屏幕上显示 View Controller 。在我的 UIPresentationController 中,我将 pre
在 Apples Developer Class-Reference 中,您可以将三种类型的模糊效果应用于 UIVisualEffectsView。 : typedef enum { UIBlu
我想呈现一个具有模糊背景的UIViewController。我在 ViewDidLoad() 中使用了以下代码 self.view.backgroundColor = UIColor.clear
我正在使用 iOS 8 中实现的 UIBlurEffect 轻松模糊屏幕。但是,我遇到了一个问题,因为我不知道如何将这种模糊效果制作成动画而不是即时效果。 我试过用这个但是没用: [UIView an
我在 Storyboard上有一个视觉效果 View 作为导出连接到我的 ViewController。效果是在它后面打上一个 ImageView 并且效果很好。我正在尝试在单击 IBAction 的
我在 viewDidLoad 函数中使用非常简单的代码在具有图像内容 View 的 imageView 上方创建模糊效果。 但是不知何故出现了非常奇怪的结果,模糊 View 没有覆盖 ImageVie
这就是我定义 UIVisualEffectView 的方式: UIApplication.sharedApplication().delegate?.window??.addSubview(s
我以编程方式模糊了我的 View ,并添加了带有屏幕截图的共享扩展,但屏幕截图并没有模糊我在图像中的 View 。所有编程都在 swift 中 模糊代码 let blurEffect = UIBlur
Xcode 8.0 - Swift 2.3 我有一个内部扩展来创建效果很好的模糊层: internal extension UIView { /** Add and disp
我不希望我的背景图片太模糊。没有调整模糊强度的属性吗? let blurEffect = UIBlurEffect(style: UIBlurEffectStyle.Light) blurEffect
我有一个 UIView,我在我的 viewDidLoad 中设置了它的框架。然后我使用 blurBackgroundForView 函数对其进行模糊处理: override func viewDidL
我有一个背景图像,我从主视图 Controller 传递到详细信息 TableView Controller 并使用 UIBlurEffect 使图像成为详细信息 TableView 的背景 View
我正在使用带有开箱即用的 Master 和 Detail View Controller 的库存 UISplitViewController。在 Storyboard中,我向 Detail Contr
我在 UIViewController 中使用 UIBlurEffect,它以 .crossDissolve 过渡样式呈现。 UIViewController 在其 View 中添加了一个 colle
我想知道是否可以将 UIBlurEffect 与 SpriteKit 一起使用? 我在 stackoverflow 上找到了这个,但它不适用于我的 SpriteNode。 var visualEff
我想在 iOS8 应用程序上的图像顶部切换模糊效果。我知道从这个 if/else 实现的基本思想来看是错误的,但我不知道如何正确地做到这一点,因为我是新手。任何建议都会很乐意接受。 我还想在模糊图像之
我的 tableview 有问题,在使用 uiblurview 实现顶部栏后,tableview 在 iphone5 上是滞后的,滚动 tableview 在添加模糊 View 之前占用 20-25%
我正在开发一款适用于 iOS 的软件,使用 IPAD 3 (MD368TY/A) 作为测试硬件。我正在尝试在背景图像上创建模糊效果,但得到以下结果: “正确”应该是: (使用Iphone 5S模拟器得
我是一名优秀的程序员,十分优秀!