2017-05-26 66 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 - 應解決該問題。