2015-07-19 47 views
1

我居然发现这个同样的问题here但obj.c所以与我设法做到这一点:如何使图像和标签自定义正确的UIBarButtonItem?

trashNavButton = UIButton.buttonWithType(UIButtonType.Custom) as! UIButton 
     trashNavButton.addTarget(self, action: "trashItemClicked", forControlEvents: UIControlEvents.TouchUpInside) 
trashNavButton = UIButton(frame: CGRectMake(0, 0, 50, 32)) 
trashNavButton.setTitle("\(trashCount)", forState: UIControlState.Normal) 
trashNavButton.setTitleColor(UIColor(red: 229.0/255.0, green: 57.0/255.0, blue: 53.0/255.0, alpha: 1.0), forState: UIControlState.Normal) 
trashNavButton.titleLabel?.textAlignment = NSTextAlignment.Right 
trashNavButton.setImage(UIImage(named: "trashButton"), forState: UIControlState.Normal) 
rightBarButton.customView = trashNavButton 
self.navigationItem.rightBarButtonItem = rightBarButton 

我试图做的是在导航栏的右侧有一个按钮,并且我希望该按钮在其左侧也有一个标签(您可以在上面提到的问题中看到一个很好的示例),并且该代码非常适用,但图像位于左侧,而标签位于对,我希望它是相反的方式,我会感谢您的帮助:)

+0

注意自定义在uibarbuttonitem上查看。像这样:self.navigationItem.rightBarButtonItem = UIBarButtonItem(customView:yourCustomView)它似乎会帮助你。 – stosha

回答

5

只是作为一个例子

let containView = UIView(frame: CGRectMake(0, 0,70, 40)) 

let label = UILabel(frame: CGRectMake(0, 0, 50, 40)) 
label.text = "Right" 
label.textAlignment = NSTextAlignment.Center 

containView.addSubview(label) 

let imageview = UIImageView(frame: CGRectMake(50, 10, 20, 20)) 
imageview.image = UIImage(named: "memoAccess") 
imageview.contentMode = UIViewContentMode.ScaleAspectFill 
containView.addSubview(imageview) 

self.navigationItem.rightBarButtonItem = UIBarButtonItem(customView: containView) 
+0

如何使标签与右侧对齐?该文本将是一个可以改变的数字 –

+0

查看更新代码。您可以使用'textAlignment' – Leo

+0

正确的感谢,你知道如何使它像一个按钮?突出显示时更改颜色,并为其添加操作 –

相关问题