2017-05-26 31 views
0

正如你可以在这个截图中看到:Xcode中显示标签,按钮,导航栏和图像的像素化

enter image description here

导航栏,按钮和扬声器图像是pixeled。 我migth认为它有到视图层次的连接 - 这种观点是主视图(主视图标签和按钮看起来不错,不pixeled),写在斯威夫特的顶部:

var navUser = UIViewController() 

class ViewControllerMenu: UIViewController { 
navUser = storyboard!.instantiateViewController(withIdentifier: "navUser") 
     addChildViewController(navUser) 
     navUser.view.frame = view.frame 
     view.addSubview(navUser.view) 
     navUser.didMove(toParentViewController: self) 
     navUser.view.alpha = 0 

     navUser.view.layer.shadowColor = UIColor.black.cgColor 
     navUser.view.layer.shadowOpacity = 1 
     navUser.view.layer.shadowOffset = CGSize.zero 
     navUser.view.layer.shadowRadius = 10 

     navUser.view.layer.shadowPath = UIBezierPath(rect: navUser.view.bounds).cgPath 
     navUser.view.layer.shouldRasterize = true 
} 

我米加入这一观点的视图层次:

enter image description here

这发生在所有的Xcode iPhone模拟器,并以我个人的iPhone 7.

+1

如果你只是注释掉'navUser.view.layer.shouldRasterize = true'这行,会发生什么?看起来像'.shouldRasterize'的奇怪用法... – DonMag

+0

@DonMag是的,它的工作原理!请将它作为答案发布:)谢谢! – Eliko

回答

2

这似乎是一个奇怪的用法...当多次重新显示复杂视图/图层时(例如游戏动画),通常会使用这个选项。

删除该行 - navUser.view.layer.shouldRasterize = true - 应解决该问题。