1

我想更改 UIBarButtonItem 的文本颜色,例如 Pinterest 应用程序(navigationItem.backBarButtonItem)。但这里几乎是同样的问题。 有没有一种简单的方法可以在不使用图像的情况下更改 UIBarButtonItem 的文本颜色?

那么,为什么 UIBarButtonItem 的文本颜色在 Pinterest 应用程序中会发生变化?

4

4 回答 4

4

尝试setTitleTextAttributes:forState:

您可以从这里了解更多信息

于 2012-04-11T05:52:16.623 回答
0

您可以使用 UISegmentedControl 来模拟 UIBarButtonItem。确保您有一个带有单段的段控件。

- (void) viewDidLoad {
  [YOUR_SEGMENTED_CONTROL removeAllSegments];
  [YOUR_SEGMENTED_CONTROL insertSegmentWithTitle:@"MyButton" atIndex:0 animated:NO];   
}

检索 UISegmentedControl 的标签并将 textColor 设置为您喜欢的颜色

UILabel* lblText = [[[[YOUR_SEGMENTED_CONTROL subviews] objectAtIndex:0] subviews] objectAtIndex:0];
lblText.textColor = [UIColor blackColor];
于 2012-04-11T07:16:54.027 回答
0
 @interface MyViewCOontroller : UIViewController {
  UILabel *lblTotCaratteri;
  }

在实施中

  UIBarButtonItem *barItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:self action:nil];  
 lblTotCaratteri = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 25, 15)];
 lblTotCaratteri.textAlignment = UITextAlignmentCenter;

 lblTotCaratteri.textColor =[UIColor greyColor];

希望这可以帮助

于 2012-04-11T05:49:25.827 回答
0

我不是这样做的直接方法,但您可以通过将 UIBUtton 添加到 UIBarButtonItem 的 customview 来实现。

UIButton *backButton    =   [UIButton buttonWithType:UIButtonTypeCustom];
backButton.frame        =   CGRectMake(0, 0, 80, 40);
[backButton setBackgroundImage:[UIImage imageNamed:@"back-button.png"] forState:UIControlStateNormal];// Setting the background Image
[backButton setTitle:@"Back" forState:UIControlStateNormal];//Setting the title of the button
[backButton setTitleColor:[UIColor redColor] forState:UIControlStateNormal];// Setting the text color.
[backButton addTarget:self action:@selector(backButtonTaped) forControlEvents:UIControlEventTouchUpInside];

UIBarButtonItem *backButtonItem =   [[UIBarButtonItem alloc]initWithCustomView:backButton];

self.navigationItem.leftBarButtonItem   =   backButtonItem;

这将为您提供一个 UIBarButtonItem,其中包含红色文本“Back”。

于 2012-04-11T06:07:14.960 回答