2010-06-11 39 views
8

Mọi thứ về UIButton này đều hiển thị tuyệt vời ngoại trừ văn bản được cho là trên đó. NSLog chứng minh rằng văn bản ở đúng nơi. Đưa cái gì?Tại sao UIButton này không hiển thị nhãn văn bản?

UIButton *newTagButton = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 
[newTagButton addTarget:self action:@selector(showNewTagField) forControlEvents:UIControlEventTouchUpInside]; 
newTagButton.titleLabel.text = @"+ New Tag"; 
NSLog(@"Just set button label to %@", newTagButton.titleLabel.text); 
newTagButton.titleLabel.font = [UIFont systemFontOfSize:17]; 
newTagButton.titleLabel.textColor = [UIColor redColor]; 
CGSize addtextsize = [newTagButton.titleLabel.text sizeWithFont:[UIFont systemFontOfSize:17]]; 
CGSize buttonsize = { (addtextsize.width + 20), (addtextsize.height * 1.2) }; 
newTagButton.frame = CGRectMake(x, y, buttonsize.width, buttonsize.height); 
[self.mainView addSubview:newTagButton]; 

Trả lời

20

Có một bộ API trên UIButton nên được sử dụng để thay đổi các thuộc tính đó.

Tiêu đềLabel có thể và sẽ được thay đổi bởi UIButton trong nội bộ.

[button setTitle:title forState:state]; 
[button setTitleColor:color forState:state]; 
[button setTitleShadowColor:color forState:state]; 

Bạn nên luôn đặt các thuộc tính này thông qua các phương pháp này (nếu có) thay vì chạm vào tiêu đềLabel trực tiếp. Đối với phông chữ, bạn có thể thay đổi nó trên titleLabel trực tiếp vì chúng không cung cấp phương thức trên UIButton.

+0

Bingo. Cảm ơn bạn! –

Các vấn đề liên quan