2013-08-14 33 views
7

Tôi đang cố gắng thêm gạch dưới vào tiêu đề của mình trên UIButton tùy chỉnh nhưng bằng cách làm theo ví dụ được tìm thấy here, tôi không thể hiển thị trên màn hình.UIButton setAttributedTitle: forState: Không hiển thị lên

Đây là mã tôi đang cố gắng sử dụng:

NSMutableAttributedString *commentString = [[NSMutableAttributedString alloc] initWithString:@"The Quick Brown Fox"]; 

[commentString addAttribute:NSUnderlineStyleAttributeName value:[NSNumber numberWithInteger:NSUnderlineStyleSingle] range:NSMakeRange(0, [commentString length])]; 

[button setAttributedTitle:commentString forState:UIControlStateNormal]; 

này không hiển thị. Nhưng nếu tôi chỉ làm một cách thông thường, như vậy:

[button setTitle:@"The Quick Brown Fox" forState:UIControlStateNormal]; 

Điều này hiển thị tốt. Ai đó có thể cho tôi biết tôi đang thiếu gì không?

+0

Câu trả lời của tôi không đúng, vì vậy tôi đã xóa nó. Bạn đang nhắm mục tiêu phiên bản iOS nào? – Firo

+0

@Firo iOS 6.0 trở lên – daveMac

Trả lời

10

Tôi đã nhận ra sự cố ở đây. Tôi cho rằng nó không hiển thị vì tôi không thể nhìn thấy nó. Tuy nhiên, nó đã được hiển thị, nó chỉ là màu sắc giống như nền.

Tôi giả định sai rằng [button setTitleColor:myColor forState:UIControlStateNormal]; sẽ là màu mà thuộc tính được gán sẽ sử dụng. Tuy nhiên, nền của tôi là màu đen và NSMutableAttributedString phải mặc định là màu đen.

[commentString addAttribute:NSForegroundColorAttributeName value:myColor range:NSMakeRange(0, [commentString length])]; 

Giúp hiển thị chính xác.

+0

FYI, câu trả lời của @ middaparka ở trên không liên quan đến câu trả lời của tôi. Nó đã được trả lời cho một người dùng bất mãn, những người muốn biết tại sao câu trả lời sai của họ đã bị bỏ phiếu. – daveMac

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