kel*_*ikh 7 uinavigationbar ios swift
我一直难以理解如何在左对齐的NavigationBar中获取图像.我理解如何替换中心的标题.
基本上,我有一个嵌入导航栏控制器的视图控制器.在那个视图控制器中,我在中间有一个搜索表单,右边有一个条形按钮,我正在尝试在左侧放置一个图像.
以下是我理解如何放置图像但我如何将其左对齐?
let imageView = UIImageView(frame: CGRect(x: 0, y: 0, width: 50, height: 50))
imageView.contentMode = .ScaleAspectFit
let image = UIImage(named: "imageName")
imageView.image = image
navigationItem.titleView = imageView
Run Code Online (Sandbox Code Playgroud)
dok*_*un1 13
您可以将项目数组分配给该leftBarButtonItems属性navigationBar.您应该添加一个数组,因为左侧和徽标之间通常没有空格,这看起来不太好.这是一个例子:
func setUpUI() {
let logoImage = UIImage.init(named: "logoImage")
let logoImageView = UIImageView.init(image: logoImage)
logoImageView.frame = CGRectMake(-40, 0, 150, 25)
logoImageView.contentMode = .ScaleAspectFit
let imageItem = UIBarButtonItem.init(customView: logoImageView)
let negativeSpacer = UIBarButtonItem.init(barButtonSystemItem: .FixedSpace, target: nil, action: nil)
negativeSpacer.width = -25
navigationItem.leftBarButtonItems = [negativeSpacer, imageItem]
}
Run Code Online (Sandbox Code Playgroud)
它左边的负隔离物会将它推过一点,你可以从那里进行调整.
War*_*ior 12
对于iOS 11,我们需要为BarButtomItem的图像视图添加约束
func addLeftBarIcon(named:String) {
let logoImage = UIImage.init(named: named)
let logoImageView = UIImageView.init(image: logoImage)
logoImageView.frame = CGRect(x:0.0,y:0.0, width:60,height:25.0)
logoImageView.contentMode = .scaleAspectFit
let imageItem = UIBarButtonItem.init(customView: logoImageView)
let widthConstraint = logoImageView.widthAnchor.constraint(equalToConstant: 60)
let heightConstraint = logoImageView.heightAnchor.constraint(equalToConstant: 25)
heightConstraint.isActive = true
widthConstraint.isActive = true
navigationItem.leftBarButtonItem = imageItem
}
Run Code Online (Sandbox Code Playgroud)
祝一切顺利