gpt4 book ai didi

ios - 图像重叠 ui 导航栏 swift

转载 作者:行者123 更新时间:2023-11-30 13:18:55 24 4
gpt4 key购买 nike

我目前在导航栏中有图像,但它与边缘重叠: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

任何帮助将不胜感激!

最佳答案

基本上,我希望您需要调整 imageViewedgeInsets,目前我们无法直接在 UIImageView 上执行此操作。

使用给出的方法here:

我确实将其转换为 Swift(供您引用):

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。我想这个解决方法将帮助您解决问题。尝试一下,让我们知道它是否有效。

关于ios - 图像重叠 ui 导航栏 swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37956630/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com