2010-04-02 30 views
6

Tôi có một UITableView với một hình nền tùy chỉnh thiết lập như thế này:vấn đề màu UITableViewCell với quan điểm nền bảng tùy chỉnh

self.tableView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"mybg.png"]]; 

Nền vẻ tốt, nhưng UITableViewCells tôi (tế bào mặc định, không tùy chỉnh) có một số loại màu sắc kỳ lạ với họ, và UILabel chứa văn bản "Dự án mới" cũng dường như có một số loại nền phía sau nó. Làm thế nào tôi có thể loại bỏ điều này? Tôi đã cố gắng:

cell.backgroundColor = [UIColor clearColor]; 
cell.textLabel.backgroundColor = [UIColor clearColor]; 

Cảm ơn

alt text http://cl.ly/Cg5/content

Trả lời

2

Tôi tin rằng đây là một tác dụng phụ khó chịu khi chỉ cần thêm hình ảnh thẳng vào backgroundColor của chế độ xem bảng của bạn.

Hãy thử thêm hình ảnh đến xem 'màu s nền:

[[self view] setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"mybg.png"]]]; 

và sau đó thiết lập các quan điểm bảng' s backgroundColor phải rõ ràng:

[[self tableView] setBackgroundColor:[UIColor clearColor]]; 

Tôi hy vọng điều này giúp!

+0

này đã làm nó, cảm ơn! – indragie

+0

Xin chào, nếu tôi cần mẫu nền cuộn với bảng thì sao? Vì vậy, tôi không thể đơn giản làm cho nền của bảng trong suốt và thiết lập nền của khung nhìn bên dưới bảng. – hzxu

+0

Hi hzxu, tôi nghĩ bạn sẽ có thể đạt được điều đó nếu bạn thiết lập màu nền của ô bảng thành [UIColor clearColor] và sau đó đặt chế độ xem nền của ô bảng thành hình ảnh tùy chỉnh (UIImageView). Sau đó bạn sẽ có thể sử dụng một nền bảng của sự lựa chọn của bạn. Hi vọng điêu nay co ich. –

0

Một số thời điểm khi bạn làm việc với các thiết lập hình ảnh cho ứng dụng, và thử nghiệm trên mô phỏng, họ nhận được đông lạnh để ứng dụng trong vài chạy. Không chắc chắn, đây là trường hợp ngay cả khi bạn xóa các tập tin hình ảnh; họ vẫn tiếp tục xuất hiện.

Tôi sẽ làm cho bạn có phần mô phỏng còn lại và khởi động lại Xcode. Sau đó, buộc xây dựng lại ứng dụng trở lại trên trình mô phỏng. Điều này sẽ xóa mọi hình ảnh ngay cả hình nền nếu chúng vẫn đang được tham chiếu.

Nếu đây không phải là giải pháp hoạt động ... hãy thử đảm bảo rằng bạn không có lệnh xung đột truy cập cùng đối tượng UiTablView- (1 từ IB và 1 từ Xcode theo chương trình). Đôi khi bạn có thể bỏ qua rằng bạn đã thiết lập một cái gì đó trong IB, và nó xung đột với những gì bạn nói với nó để làm programically.

Nếu điều đó không giải quyết được vấn đề ... hãy kiểm tra các kết nối trong IB và đảm bảo bạn quản lý đúng bảng nhìn IBOutlet UITableView *. Và bạn có giao thức đại biểu và dữ liệu trong tiêu đề.

0

Nếu bạn muốn có mỗi tế bào thiết lập với nền và muốn loại bỏ nền văn bản của, có lẽ bạn có thể thử này ...


- (void)viewDidLoad { 
... 
self.tableView.backgroundColor = [UIColor clearColor]; 
... 
} 

- (UITableViewCell *)tableView:(UITableView *)table cellForRowAtIndexPath:(NSIndexPath *)indexPath { 
... 
cell.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"mybg.png"]]; 
cell.textLabel.backgroundColor = [UIColor clearColor]; 
... 
} 
Các vấn đề liên quan