我想在导航栏上设置“完成”按钮的颜色,如下图所示:
虽然,我已将代码设置为self.doneButton.enabled = NO;
,但“完成”按钮仍为白色。它不像图像那样改变颜色。
如何设置代码以更改文本颜色完成按钮,如上图中的完成按钮? 请帮我解决这个问题。我感谢您的帮助。
答案 0 :(得分:5)
用于更改按钮使用的颜色
目标C
self.navigationItem.rightBarButtonItem = yourRightbarbuttonName;
self.navigationItem.rightBarButtonItem.tintColor = [UIColor blueColor]; // add your color
<强>夫特强>
self.navigationItem.rightBarButtonItem = yourRightbarbuttonName
self.navigationItem.rightBarButtonItem.tintColor = UIColor.blueColor()
如果您想要显示正确的按钮,请使用
目标C
self.navigationItem.rightBarButtonItem.enabled = YES;
<强>夫特强>
self.navigationItem.rightBarButtonItem.enabled = true
如果您想隐藏右侧按钮,请使用
目标C
self.navigationItem.rightBarButtonItem.enabled = NO;
<强>夫特强>
self.navigationItem.rightBarButtonItem.enabled = false
答案 1 :(得分:1)
禁用按钮后添加以下行可能会有所帮助(但未测试)
self.navigationItem.rightBarButtonItem.tintColor = [UIColor lightGrayColor];
答案 2 :(得分:1)
答案 3 :(得分:1)
试一下
UIBarButtonItem *rightBarButton=[[UIBarButtonItem alloc]initWithTitle:@"Done" style:UIBarButtonItemStylePlain target:self action:@selector(editProfileClick)];
rightBarButton.tintColor=[UIColor whiteColor];
self.navigationItem.rightBarButtonItem = rightBarButton;
-(void)editProfileClick
{
//your methods
}
答案 4 :(得分:0)
谢谢大家的支持。我也像你一样更改代码,但是文字颜色为#34;完成&#34;按钮无法改变。现在,我已经为这个问题找到了一个很好的解决方案。
首先,我创建了一个像这样的通用函数:
- (void)changeStatusOfRightBarButton:(BOOL)enabled withColorAlpha:(CGFloat)numberAlpha {
_doneButton.enabled = enabled;
[[UIBarButtonItem appearanceWhenContainedIn:[UINavigationBar class], nil]
setTitleTextAttributes:
@{NSForegroundColorAttributeName:[UIColor colorWithHexString:@"FFFFFF" alpha:numberAlpha],
NSFontAttributeName:[UIFont fontAvenirNextRegularWithSize:15.0f]
}
forState:UIControlStateNormal];
}
其次我将其应用于viewDidload
:
if (self.noteTextView.text.length == 0) {
[self.noteTextView becomeFirstResponder];
[self changeStatusOfRightBarButton:NO withColorAlpha:0.44f];
}
当我应用这些代码&#34;完成&#34;按钮改变了颜色。
答案 5 :(得分:0)
要更新右栏项目文本的颜色,我们应该使用“ setTitleTextAttributes”(swift 5)。请尝试这个:
let rightBarButton = UIBarButtonItem(title: "your text", style: .plain, target: nil, action: nil)
rightBarButton.setTitleTextAttributes([NSAttributedString.Key.foregroundColor : UIColor.black], for: .normal)
navigationItem.rightBarButtonItem = rightBarButton