2011-01-14 33 views
10

Hi Tôi có vấn đề đối với thiết lập nhiều dòng để nút của tôi mà là tuyên bố như thế:Nhiều dòng trong UIButton

button = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 
button.titleLabel.font   = [UIFont systemFontOfSize: 12]; 
button.titleLabel.lineBreakMode = UILineBreakModeWordWrap; 
button.titleLabel.numberOfLines = 0; 
button.titleLabel.shadowOffset = CGSizeMake (1.0, 0.0); 

[button addTarget:self 
      action:@selector(myButtonClick) 
forControlEvents:UIControlEventTouchDown]; 

button.frame = CGRectMake(0.0, 100.0, 317.0, 100.0); 
[button setTitle:string forState:UIControlStateNormal]; 
button.titleLabel.font   = [UIFont systemFontOfSize: 12]; 
button.titleLabel.text = @"ahoj"; 

NSMutableString *ObratString = [[NSMutableString alloc] initWithString:button.titleLabel.text]; 

[ObratString appendString:@"\n"]; 
[ObratString appendString:@"caw"]; 
[ObratString appendString:@"\n"]; 
[ObratString appendString:@"helllo"]; 
button.titleLabel.text = ObratString; 
[ObratString release]; 
[self.view addSubview:button]; 

Nhưng cuối cùng tôi chỉ thấy dòng đầu tiên. Có cách nào để nó hoạt động không?

+1

có thể trùng lặp của http://stackoverflow.com/questions/2265940/ breakline-in-uibutton-title – fresskoma

+0

Xem một câu hỏi khác và một số câu trả lời về điều này - [tại đây] (http://stackoverflow.com/questions/604632/how-do-you-add-multi-line-text-to-a -uibutton) –

Trả lời

53

Màn hình UIButton hiển thị văn bản có chứa UILabel. Mặc định cho nhãn được chứa là chỉ hiển thị một dòng văn bản. Bạn có thể truy cập nhãn này thông qua thuộc tính titleLabel và mọi thứ bạn có thể thực hiện với nhãn bình thường đều có thể thực hiện được.

Ví dụ làm cho nó đa đường bị phá vỡ bởi chữ:

myButton.titleLabel. numberOfLines = 0; // Dynamic number of lines 
myButton.titleLabel.lineBreakMode = UILineBreakModeWordWrap; 
+0

Vâng, nhưng nếu bạn có thể thấy tôi đã làm cho nó là trong mã của tôi, nhưng nó chỉ wont làm wat nó đã – Csabi

+0

Thật tuyệt vời !!! cảm ơn :) –

+10

UILineBreakModeWordWrap không được chấp nhận. sử dụng NSLineBreakByWordWrapping để thay thế – yzucker

4

Swift phiên bản dành cho các phản ứng kiểm tra:

myButton.titleLabel?.numberOfLines = 0 
    myButton.titleLabel?.lineBreakMode = NSLineBreakMode.ByWordWrapping