UIbarbuttonItem 标题的自定义字体

Posted

技术标签:

【中文标题】UIbarbuttonItem 标题的自定义字体【英文标题】:Custom font to a UIbarbuttonItem title 【发布时间】:2011-03-01 06:13:32 【问题描述】:

我需要更改 UIBarButtonItem 标题的字体。目前是barbuttonItem.customView = customLabel。现在我想添加一个选择器和目标,这样我就可以获得 touchDown 事件。具有相同的字体样式。

提前致谢,

【问题讨论】:

【参考方案1】:

如果您不想创建自定义视图,可以使用 UIBarItem 上的 setTitleTextAttributes 方法来设置字体。例如这里是一个 UIBarButtonItem 使用它来操作字体:

[self.filterButton setTitleTextAttributes:
 [NSDictionary dictionaryWithObjectsAndKeys:
  [UIFont fontWithName:@"Helvetica Neue" size:15.0],UITextAttributeFont,
  nil]forState:UIControlStateNormal];

【讨论】:

我不确定你的情况,但它不适用于自定义字体(这正是 OP 所要求的)。 请确保使用 NSFontAttributeName 指定字体,使用字典文字语法如下: [barButtonItem setTitleTextAttributes:@NSFontAttributeName: [UIFont fontWithName:@"AvenirNext-Regular" size:15.0 ] forState:UIControlStateNormal];【参考方案2】:

您应该只使用 UIButton 作为您的自定义视图。

UIButton *customButton = [UIButton buttonWithType:UIButtonTypeCustom];
customButton.titleLabel.font = [UIFont systemFontOfSize:14.0];
[customButton setImage:[UIImage imageNamed:@"image_up_state.png"] forState:UIControlStateNormal];
[customButton setImage: [UIImage imageNamed:@"image_down_state.png"] forState:UIControlStateHighlighted];
[customButton addTarget:self action:@selector(doSomething) forControlEvents:UIControlEventTouchUpInside];

这将设置您的自定义字体,然后允许您拥有向上状态图像和向下状态图像。当你点击按钮时,它会调用 doSomething 消息。

【讨论】:

以上是关于UIbarbuttonItem 标题的自定义字体的主要内容,如果未能解决你的问题,请参考以下文章

添加 UIStackView 作为 UIBarButtonItem 的自定义视图

如何创建没有光泽效果的自定义 UIBarButtonItem

UINavigationController 的自定义 UIBarButtonItem/UISegmentedControl

使用自定义字体时,UIBarButtonItem 在后退手势上跳转

UIBarButtonItem 的默认后退按钮背景图像出现在我的自定义

子类化 UIBarButtonItem