在导航栏中添加左对齐的徽标

时间:2016-04-15 13:14:58

标签: ios swift uinavigationbar

我一直难以理解如何在左对齐的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 

3 个答案:

答案 0 :(得分:12)

您可以将一组项目分配给leftBarButtonItems的{​​{1}}属性。您应该添加一个数组,因为左侧和徽标之间通常没有空格,这看起来并不好看。这是一个例子:

navigationBar

它左边的负隔离物会将它推过一点,你可以从那里进行调整。

答案 1 :(得分:11)

对于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
}

一切顺利

答案 2 :(得分:0)

使用Image创建BarButton项。

将其作为左栏按钮项目分配给导航栏,如下所示。

目标C

UIBarButtonItem *logo = [[UIBarButtonItem alloc]initWithImage:[UIImage imageNamed:"imageName"] style:UIBarButtonItemStylePlain target:self action:@selector(methodName)];

self.navigationItem.leftBarButtonItem = logo;

SWIFT

let logo = UIBarButtonItem(image: UIImage (named: "imageName"), style: UIBarButtonItemStyle.plain, target: self, action: methodName)

self.navigationItem.leftBarButtonItem = logo

希望有所帮助......