2016-06-22 27 views
0

我現在有在導航欄中的圖像,但它重疊的邊緣:overlap圖像重疊的用戶界面導航欄中的快捷

這是我在viewDidLoad中使用的代碼:我試過設置

let logo = UIImage(named: "holy-grail-pub-logo-header-logo") 
let imageView = UIImageView(image:logo) 
imageView.contentMode = .ScaleAspectFit 
self.navigationItem.titleView = imageView 

手動使用CGRECT的位置,但它沒有改變任何東西:

let imageView = UIImageView(frame: CGRect(x: 0, y: -30, width: 100, height: 60)) 
    imageView.contentMode = .ScaleAspectFit 
    let logo = UIImage(named: "holy-grail-pub-logo-header-logo") 
    imageView.image = logo 
    self.navigationItem.titleView = imageView 

任何幫助將不勝感激!

+0

你有沒有嘗試過應用sizeToFit()方法?即imageView.sizeToFit() – webjunkie

回答

0

基本上我希望你需要調整你的你的imageView我們不能直接在UIImageView截至目前。

使用給出的方法here:

我沒有將它轉換爲斯威夫特(供您參考):

extension UIImage { 

class func imageWith(image: UIImage, scaledToSize: CGSize) -> UIImage { 
     //UIGraphicsBeginImageContext(newSize); 
     // In next line, pass 0.0 to use the current device's pixel scaling factor (and thus account for Retina resolution). 
     // Pass 1.0 to force exact pixel size. 
     UIGraphicsBeginImageContextWithOptions(scaledToSize, false, 0.0) 
     image.drawInRect(CGRectMake(0, 0, scaledToSize.width, scaledToSize.height)) 
     let newImage = UIGraphicsGetImageFromCurrentImageContext() 
     UIGraphicsEndImageContext() 
     return newImage 
    } 
} 

使用上述方法:

let image = UIImage.imageWith(UIImage(named: "holy-grail-pub-logo-header-logo")!, scaledToSize: CGSizeMake(80,80)) 
    let imageView = UIImageView() 
    imageView.frame = CGRectMake(0, 0, 100, 100) 
    imageView.contentMode = .ScaleAspectFit 
    imageView.image = image 

現在你insets成爲100-80即20。我想這個解決方法將幫助你解決你的問題。試試這個,讓我們知道它是否有效。

+0

我試着將代碼添加到項目中,但現在圖像根本沒有出現在導航欄中。 – SwiftyJD

+0

最後你錯過了這條線嗎? 'self.navigationItem.titleView = imageView' – Santosh