设置UIBarButtonItem的字体大小

时间:2015-07-30 04:01:46

标签: swift uibarbuttonitem

我正在使用以下代码创建OleDbDataAdapter

UIBarButtonItem

按钮应显示右箭头,确实如此。问题是字体不控制按钮的大小。我得到以下内容:

enter image description here

使用系统字体时才会发生这种情况。我和Helvetica一起尝试过,我得到了以下内容:

enter image description here

箭头肯定更大,但导航栏上的箭头也太高了。如果我旋转屏幕,它看起来很糟糕。

enter image description here

箭头太高,看起来不合适。与左侧的项目按钮相比,看看它的外观如何?那个被拖放了。

如何调整箭头以使其尺寸正确,并且位于屏幕上的正确位置?

3 个答案:

答案 0 :(得分:10)

你必须设置标题边缘插图

使用CustomView

var btn = UIButton.buttonWithType(UIButtonType.System) as! UIButton
btn.frame = CGRectMake(10, 20, 50, 50)
btn.setTitle("➞", forState: UIControlState.Normal)
btn.titleLabel?.font = UIFont(name: "Helvetica" , size: 17)
btn.titleEdgeInsets = UIEdgeInsetsMake(5, 0, 0, 0)
btn.addTarget(self, action: Selector("navigateToViewTwo"), forControlEvents: UIControlEvents.TouchUpInside)
var right = UIBarButtonItem(customView: btn)

使用Normal已完成

var rightItem = UIBarButtonItem(title: "➞", style: UIBarButtonItemStyle.Plain, target: self, action: "navigateToViewTwo")
rightItem.setTitleTextAttributes([NSFontAttributeName: UIFont(name: "Helvetica", size: 17.0)!], forState: UIControlState.Normal)
rightItem.setTitlePositionAdjustment(UIOffsetMake(0.0, 5.0), forBarMetrics: UIBarMetrics.Default)

将两者都设置为进行比较,只需添加看起来好像的东西:

navigationController?.navigationBar.topItem?.rightBarButtonItems = [rightItem,right]

结果:

enter image description here

希望它会对你有所帮助。

答案 1 :(得分:2)

UIBarButtonItem.appearance().setTitleTextAttributes([NSAttributedStringKey.foregroundColor : UIColor(red:0.12, green:0.28, blue:0.40, alpha:1.0), NSAttributedStringKey.font: UIFont(name: "GalanoGrotesque-SemiBold", size: 18)!], for: .normal)

答案 2 :(得分:0)

之前我遇到过这个问题,我决定使用自定义视图来处理这个问题,如下所示:

    var view = // create your custom view
    var btnMenu = UIBarButtonItem(customView: view)