2010-03-24 36 views
40

Tôi phải bỏ qua điều gì đó hoàn toàn hiển nhiên ?? nhưng nút của tôi hiển thị hình ảnh và kích thước của nó một cách chính xác, nhưng tôi chỉ đơn giản là không thể có được Tiêu đề để hiển thị.UIButton loại UIButtonTypeCustom sẽ không hiển thị Tiêu đề (iPhone)

Tôi đã làm một bài kiểm tra thực sự đơn giản, Tiêu đề thậm chí không xuất hiện khi tôi làm điều này:

CGRect frameBtn = CGRectMake(160.0f, 150.0f, 144.0f, 42.0f); 
    UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; 
    [button setImage:[UIImage imageNamed:@"left_halfscreen_button.png"] forState:UIControlStateNormal]; 
    [button setTitle:@"Hello" forState:UIControlStateNormal]; 
    [button setFrame:frameBtn]; 
    NSLog(@"Title:%@", [button currentTitle]); 
    //prints "Title:Hello 
    [self addSubview:button]; 

Tôi có một lớp nhà máy mà tạo ra các nút tùy chỉnh cho tôi và tôi nghĩ rằng tôi sai lầm một số chi tiết lên đó , vì vậy tôi đã chuyển mã ở trên trực tiếp vào UIView của mình, tiêu đề vẫn trống.

Đây có phải là lỗi hoặc tôi chỉ đơn giản là thiếu thứ gì đó ngay trước mắt tôi.

Cảm ơn bạn đã đặt thêm bộ mắt :)

Trả lời

90

Tiêu đề ghi đè hình ảnh, bạn cần làm cho hình ảnh ở chế độ nền để hiển thị tiêu đề.

 
[button setBackgroundImage:[UIImage imageNamed:@"left_halfscreen_button.png"] 
     forState:UIControlStateNormal]; 
+0

Cảm ơn bạn Tuomas :) Tôi đã kéo tóc của tôi ra về thế này! Tôi nghĩ rằng một cái gì đó như thế đã xảy ra vì vậy tôi thậm chí đã thử các công cụ như "bringSubViewToFront" trong tuyệt vọng. Tôi đã bỏ lỡ phần nền trong tài liệu. Cảm ơn bạn một lần nữa. – RickiG

+0

Nhờ Tuomas! Tôi đã rất bối rối vì điều này và đây là câu trả lời duy nhất tôi tìm thấy. – janineanne

27

Tôi chỉ spome hab vấn đề khá giống ... Chỉ cần đặt màu tiêu đề, tôi đoán một hiện nay là màu trắng;)

[button setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
+2

Đôi khi bạn thậm chí phải sử dụng setTitleColor thay vì uibutton.titleLabel.textColor – ColossalChris

0

Tôi đã có một vấn đề tương tự mà tiêu đề đã không được hiển thị . Tôi quên đặt thuộc tính khung:

//set the position of the button 
button.frame = CGRectMake(100, 170, 100, 30); 
13

Tôi đã tìm thấy sự cố!

Không phải hình ảnh sẽ ghi đè tiêu đề. Nó đang được đẩy ra khỏi khung bởi hình ảnh.

Hãy thử sử dụng này:

[btn setTitleEdgeInsets:UIEdgeInsetsMake(0.0, -img.size.width, 0.0, 0.0)];

Hy vọng nó sẽ giúp!

+0

Loại hình này làm việc cho tôi. Tôi đã kết thúc bằng [btn setTitleEdgeInsets: UIEdgeInsetsMake (0.0, 0, 0.0, 0.0)]; Bạn đã đẩy văn bản ở bên trái của nút. – arsenius

+0

Hi @arsenius UIEdgeInsetsMake (0, 0, 0, 0) phù hợp với bạn có thể là vì bạn có chiều rộng khung rộng hơn cho nút. JapCon's -img.size.width có thể là do anh ta có chiều rộng khung hình khác nhau cho nút. – Cong

3

Khi bạn sử dụng UIButton, nút sử dụng một số kích thước tích hợp cho khung của nó.

Bạn nên thiết lập khung:

button.frame = CGRectMake(0, 0, width, height); 

hoặc thậm chí tốt hơn và thoải mái:

[button sizeToFit]; 
Các vấn đề liên quan