【问题标题】:UIImageView not positioning correctly in Navbar and Status BarUIImageView 在导航栏和状态栏中没有正确定位
【发布时间】:2016-10-19 19:43:42
【问题描述】:

我正在尝试在导航栏中使用图像。继续靠近,但没有雪茄。使用下面的代码,它可以很好地加载图像并将其定位几乎正确。它似乎在视图周围有一个垫子,但我对它没有任何限制。当我删除状态栏时,它会缩小图像,但将其定位在导航栏中。

    let nav = self.navigationController?.navigationBar

    for parent in self.navigationController!.navigationBar.subviews {
        for childView in parent.subviews {
            if(childView is UIImageView) {
                childView.removeFromSuperview()
            }
        }
    }

    nav?.barStyle = UIBarStyle.Default
    nav?.tintColor = UIColor.blueColor()

    let app = UIApplication.sharedApplication()
    let SBheight = app.statusBarFrame.size.height
    let totalheight = SBheight + nav!.frame.height
    let totalwidth = nav!.frame.width
    let imageView = UIImageView(frame: CGRect(x: 0, y: 0, width: totalwidth , height: totalheight))
    imageView.clipsToBounds = true
    imageView.contentMode = .ScaleAspectFill

    var image = UIImage(named: "HRC")
    imageView.image = image

    navigationItem.titleView = imageView

这是导航栏区域的截图:

【问题讨论】:

    标签: ios swift uiimageview navigation frame


    【解决方案1】:

    我可以设置导航栏的背景图片,下面的代码没有问题。

    Swift 3.0

    let backgroundImage = UIImage(named: "name_of_background_image")?.resizableImage(withCapInsets: UIEdgeInsetsMake(0, 0, 0, 0), resizingMode: .stretch)
    self.navigationController?.navigationBar.setBackgroundImage(backgroundImage, for: .default)
    

    斯威夫特 2.3

    let backgroundImage = UIImage(named: "name_of_background_image")?.resizableImageWithCapInsets(UIEdgeInsetsMake(0, 0, 0, 0), resizingMode: .Stretch)
    self.navigationController?.navigationBar.setBackgroundImage(backgroundImage, forBarMetrics: .Default)
    

    您可以将上面的代码添加到viewDidLoad,并为每个viewController自定义背景图片。

    确保将图片渲染为资产目录中的Original

    并仔细检查您的图片尺寸是否正确。

    @2x -> 750 x 128

    @3x -> 1125 x 192

    【讨论】:

    • 谢谢。我不得不将“for:.default”更改为“forBarMetrics:Default”......现在除了横向之外,它在 iphone 上运行良好。 iPad 会重复并平铺图像。关于如何简单地居中或填充图像的任何帮助?
    猜你喜欢
    • 1970-01-01
    • 2014-05-26
    • 1970-01-01
    • 2017-08-28
    • 2018-12-02
    • 1970-01-01
    • 2013-01-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多