UIImageView 在导航栏和状态栏中的定位不正确
UIImageView not positioning correctly in Navbar and Status Bar
我正在尝试在我的导航栏中使用图像。继续靠近但没有雪茄。使用下面的代码,它可以很好地加载图像并将其定位几乎正确。它似乎在视图周围有一个垫子,但我对它没有任何限制。当我删除状态栏时,它缩小了图像,但它在导航栏中的位置很好。
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
这是导航栏区域的截图:
我可以通过下面的代码设置导航栏的背景图片,没有问题。
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)
Swift 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
我正在尝试在我的导航栏中使用图像。继续靠近但没有雪茄。使用下面的代码,它可以很好地加载图像并将其定位几乎正确。它似乎在视图周围有一个垫子,但我对它没有任何限制。当我删除状态栏时,它缩小了图像,但它在导航栏中的位置很好。
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
这是导航栏区域的截图:
我可以通过下面的代码设置导航栏的背景图片,没有问题。
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)
Swift 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