正如您在此屏幕截图中所见:
导航栏,按钮和扬声器图像都是pixeled。 我认为它与视图层次结构有一个连接 - 这个视图位于主视图的顶部(主视图标签和按钮看起来不错而且没有像素),用Swift编写:
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
}
我添加了此视图的视图层次结构:
这种情况发生在所有Xcode iPhone模拟器和我的个人iPhone 7中。
答案 0 :(得分:2)
这似乎是.shouldRasterize
的奇怪用法...通常在多次重新显示复杂视图/图层时使用(例如游戏动画)。
删除该行 - navUser.view.layer.shouldRasterize = true
- 应解决问题。