2010-03-07 23 views
34

Tôi đã tạo một mạng lưới các nút. Đoạn mã sau tạo ra các nút và hiển thị chúng, nhưng không có văn bản trên nút. Có cài đặt nào tôi bị thiếu không? (Obj-C trả lời cũng tốt, tôi song ngữ)iPhone/iPad Tiêu đề UIButtonMô tả văn bản không xuất hiện

RectangleF frame = new RectangleF (X + 3, Y + 3, cellWidth - 2, cellHeight - 2); 
UIButton button = new UIButton (frame); 
button.TitleLabel.Text = "Baha'i"; 
button.TitleLabel.Font = UIFont.FromName ("Helvetica-Bold", 15); 
button.TitleLabel.TextColor = UIColor.Black; 
button.TitleLabel.Frame = frame; 
button.BackgroundColor = UIColor.FromWhiteAlpha(.5f,.5f); 
this.AddSubview (button); 
+0

Tại sao bạn sử dụng chữ in hoa nhanh chóng cho titleLabel? Nút button.titleLabel, không phải nút. ** T ** itleLabel. –

+0

Tôi đã giải thích chi tiết ở đây http://stackoverflow.com/a/11417134/1149906 –

Trả lời

128

Tôi nghĩ rằng bạn muốn setTitle: forState:

[button setTitle:@"Baha'i" forState:UIControlStateNormal] 
+1

Điều thú vị là button.titleLable.text = @ "Foo" không phải lúc nào cũng làm điều đúng. Bạn phải đặt tiêu đề trên chính UIButton. –

+2

điều này là vô lý button.titleLabel.text không làm việc nhưng [nút setTile: .. forState:] hoạt động mong muốn nó được thiết lập theo mặc định cho trạng thái bình thường hoặc một cái gì đó. Bình luận? – Gmu

+2

@Gmu Họ đã thấy rất khó thực hiện tại quả táo – LolaRun

6

Một UIButton thừa hưởng từ UIView, vì vậy một cách khác để thêm văn bản và hình ảnh, là để thêm chế độ xem phụ. Ví dụ:

// My Image 
UIImage *buttonImage = [UIImage imageNamed:@"myImage.png"]; 
UIImageView *buttonImageView = [[[UIImageView alloc] 
    initWithFrame:CGRectMake(0, 0, 
    buttonImage.size.width,buttonImage.size.height)] autorelease]; 
[buttonImageView setImage:buttonImage]; 

// My Label 
UILabel* titleLabel = [[[UILabel alloc] 
    initWithFrame:CGRectMake(0, 0, 
    buttonImage.size.width, buttonImage.size.height)] autorelease]; 
titleLabel.text = @"My Text"; 
titleLabel.font = [UIFont fontWithName:@"Helvetica-Bold" size: 11.0]; 
titleLabel.textColor = [UIColor blackColor]; 
titleLabel.backgroundColor = [UIColor clearColor]; 
titleLabel.textAlignment = UITextAlignmentCenter; 

// Create Button with Image and Label 
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; 
[button addSubview:buttonImageView]; 
[button addSubview:titleLabel]; 
+0

Một 'UIButton' đã có nhãn. Thêm của riêng bạn khi bạn hiển thị thường không cần thiết. @ tobias-cohen có câu trả lời đúng cho câu hỏi này và hầu hết các trường hợp. – Fabian

3
UIButton * selectCountryBtn = [[UIButton alloc]initWithFrame:CGRectMake(0, 0, 100, 100)]; 

[selectCountryBtn setTitle:@"My Title" forState:UIControlStateNormal]; 

đây, tôi có tạo mẫu nút lập trình, và sau đó đặt tiêu đề cho trạng thái bình thường kiểm soát của nó, Bạn có thể sử dụng đối tượng nút riêng của bạn cho thiết lập các chuỗi tiêu đề, thêm bạn cũng có thể thiết lập văn bản tiêu đề cho một trạng thái điều khiển khác bằng cách thay đổi UIControlStateNormal thành một trạng thái bắt buộc khác.

0

Đối Developers-

button.setTitle("Your button Name", forState: .Normal) 
Các vấn đề liên quan