我有一个内置UIButton的ViewController。 当我点击时,按钮上的文字消失了。 我为所有状态添加了所有setTitle,但它会继续消失。 有什么想法吗?
这是我的代码的一部分:
@interface AddCardViewController : UITableViewController <UITextFieldDelegate>{
UIButton *commit;
......
@implementation AddCardViewController
- (void)viewDidLoad{
self.commit = [UIButton buttonWithType: UIButtonTypeCustom];
[self setCommitProperties];
[self.view addSubview:commit];
.........}
- (void) setCommitProperties{
CGRect frameTable = self.tableView.frame;
CGRect frame = CGRectMake(frameTable.origin.x + 10, 140, frameTable.size.width - 20, 40);
commit.frame = frame;
[commit setBackgroundColor : [UIColor whiteColor]];
[commit setTitle: NSLocalizedString(@"AddCard",@"") forState: UIControlStateNormal];
[commit setTitle: NSLocalizedString(@"AddCard",@"") forState: UIControlStateSelected];
[commit setTitle: NSLocalizedString(@"AddCard",@"") forState: UIControlStateHighlighted];
[commit setTitle: NSLocalizedString(@"AddCard",@"") forState: UIControlStateApplication];
[commit setTitle: NSLocalizedString(@"AddCard",@"") forState: UIControlStateReserved];
[commit setTitle: NSLocalizedString(@"AddCard",@"") forState: UIControlStateDisabled];
[commit addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchDown];
UIColor *color = [[[PersonalizationManager alloc] init] getColor: @"AddCardViewController" :@"Commit_Title"];
[commit.titleLabel setTextColor: color];
color = [[[PersonalizationManager alloc] init] getColor: @"AddCardViewController" :@"Commit_Border"];
[commit.layer setBorderColor:[color CGColor]];
[commit.layer setBorderWidth : 0.5f];
[commit.layer setCornerRadius : 10.0f];
}
答案 0 :(得分:7)
嗯,很难肯定地说,但文字是不可见的,因为颜色是一样的?我看到你为所有状态设置了文本,但你也可能想要为所有状态设置颜色。
[commit setTextColor:[UIColor redColor] forState:UIControlStateSelected];
答案 1 :(得分:2)
我注意到一件奇怪的事情。 如果我使用
设置标题 bttn.titleLabel.textColor = [UIColor purpleColor];
然后,一旦我点击按钮,标题就会消失。 但是,如果我使用以下方法:
[bttn setTitleColor:[UIColor purpleColor] forState:UIControlStateNormal];
然后一切正常。
答案 2 :(得分:2)
使用属性文本,确保storboard / xib中的按钮Type = 自定义(非系统)。
答案 3 :(得分:1)
我想你需要使用[self.commit setTitle: NSLocal...
,实际上总是使用self.commit进行分配(当你使用@property (nonatomic, retain)
或strong
时使用ARC)。我使用@synthesize commit = _commit;
,然后只对模块的其余部分使用_commit。
答案 4 :(得分:0)
正如杰克所说,它已被选中&#34;具有相同背景颜色的按钮的状态。 您也可以在故事板中更改该颜色: