2012-05-07 26 views
6

Tôi đang sử dụng tính năng StoryBoard cho dự án iPhone của mình. Trong bảng phân cảnh, tôi có một bộ điều khiển xem với chế độ xem bảng sử dụng các ô mẫu. Bên trong ô mẫu thử nghiệm, tôi có một UIButton (hình chữ nhật tròn) được nối với lớp UIButton được phân loại phụ. Các tableview được dữ liệu của nó từ một mảng, và dữ liệu được in ra trong cellForRowAtIndexPath.UIButton setTitleColor và setImage không hoạt động

Ô bên trongForRowAtIndexPath, tôi có điều kiện sửa đổi giao diện của ô. Đây là lúc tôi bắt đầu gặp vấn đề. Tôi có thể thay đổi thành công văn bản của nút. Tuy nhiên, nếu tôi cố thay đổi hình ảnh của nút, hãy sử dụng:

[cell.myButton setImage:[UIImage imageNamed:@"mynewimage.png"] forState:UIControlStateNormal]; 

hình ảnh bị thay đổi nhưng văn bản biến mất.

Nếu tôi cố gắng để thay đổi màu chữ của nút, sử dụng:

[cell.myButton setTitleColor:[UIColor colorWithRed:0 green:0 blue:0 alpha:.77] forState:UIControlStateNormal] 

Không có gì xảy ra bất cứ điều gì. Màu sắc vẫn giữ nguyên (trừ khi tôi cũng cố gắng thay đổi hình ảnh, trong trường hợp đó nó hoàn toàn biến mất).

Tôi cảm thấy tôi đang làm điều gì đó về cơ bản sai ở đây - bạn có bất kỳ đề xuất nào không?

Trả lời

4

sử dụng

- (void)setBackgroundImage:(UIImage *)image forState:(UIControlState)state; 

để thay đổi hình ảnh có văn bản bên trái

sử dụng

btn.titleLabel.textColor = yourcolor; 

để thay đổi màu sắc văn bản

+1

Tuyệt vời, hình ảnh được đặt chính xác ngay bây giờ (văn bản không biến mất).Tuy nhiên, không có gì xảy ra với màu văn bản ... – tremolo

3

Xác định myButton như dưới đây và check.This có thể là sai trái trong mã code.The của bạn là:

myButton = [UIButton buttonWithType:UIButtonTypeCustom]; 

này một phần mới được ngồi biên tập:

[myButton setBackgroundImage:yourimage forState:UIControlStateNormal]; 
    [myButton setTitleColor:yourcolor forState:UIControlStateNormal]; 
+0

Nút này không được thêm theo chương trình - nút này được thêm vào Bảng phân cảnh. – tremolo

0

Tôi đoán những gì bạn muốn là thay đổi nền nút của bạn:

[cell.myButton setBackgroundImage:[UIImage imageNamed:@"mynewimage.png"] forState:UIControlStateNormal]; 
0

văn bản của bạn sẽ biến mất bởi vì bạn đã thiết lập các hình ảnh ở nút phía trước dưới dạng hình ảnh chính của nút.

[cell.myButton setImage:[UIImage imageNamed:@"mynewimage.png"] forState:UIControlStateNormal]; 

Bạn cần đặt hình nền nút sao cho văn bản của bạn sẽ hiển thị khi hình ảnh sẽ được vẽ ở phía sau ngữ cảnh UIButton của bạn.

Vì vậy, chỉ thay thế dòng trên mã để:

[cell.myButton setBackgroundImage:[UIImage imageNamed:@"mynewimage.png"] forState:UIControlStateNormal]; 
2

Đây là cách để thiết lập các thuộc tính khác nhau để một nút tuỳ chỉnh ... Bạn cũng thấy rằng setBackgroudimage và setTitleColor tính ở đây ...

UIButtin *myButton = [UIButton buttonWithType:UIButtonTypeCustom]; 
    [myButton setFrame:CGRectMake(165, 205, 65, 40)]; 
    [myButton setTitleColor:[UIColor colorWithRed:0 green:0 blue:0 alpha:.77] forState:UIControlStateNormal]; 
    [myButton setTitle:@"Hi....." forState:UIControlStateNormal]; 
    [myButton addTarget:self action:@selector(btnClicked:)  forControlEvents:UIControlEventTouchUpInside]; 
    [myButton setBackgroundImage:[UIImage imageNamed:@"mynewimage.png"] forState:UIControlStateNormal]; 
    [cell addSubview:myButton]; 

Cảm ơn u ..

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