2012-06-15 28 views
17

Tôi đang gặp sự cố khi cố gắng thay đổi nền của UITableView với các nhóm.Thay đổi nền của UITableView được nhóm theo số

_tableView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"tableViewBg.png"]]; 

Điều này thường hoạt động trên mọi UITableView khác, nhưng không hoạt động với các nhóm khác, có điều gì khác tôi phải làm không? Trong IB tôi có màu nền được đặt thành màu rõ ràng, nhưng điều đó không làm được gì nhiều.

Trả lời

48

Bạn bổ sung cần phải tắt chế độ xem nền của _tableView:

[_tableView setBackgroundView:nil]; 
_tableView.backgroundColor = [UIColor redColor]; 

Không cần phải thêm cái nhìn mới để backgroundView. Điều này đang làm việc cho tôi trong iOS6.

+0

+1 câu trả lời tốt và đơn giản .. –

+0

thời gian lưu ans tuyệt vời. – Ryuk

+0

Thiên tài. Ai biết rằng các tiêu đề phần được nhóm lại rõ ràng! Kể từ bất kỳ iOS nào chúng tôi đang thực hiện vào năm 2017, bạn không cần phải bỏ ra nền tảng của tableView. Tôi chỉ đặt nó trực tiếp là màu trắng và đó là tất cả những gì cô ấy viết. Cảm ơn vì đã giúp tôi sắp xếp điều này! –

3

Điều tôi thường làm với UITableViews được nhóm được đặt làm màu nền để xóa và đặt hình mẫu đó thành chế độ xem bố mẹ.

self.parentViewController.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"tableBG.png"]]; 
self.tableView.backgroundColor = [UIColor clearColor]; 
+1

Tôi cũng đã thử, nhưng không thành công: self.view.backgroundColor = [UIColor colorWithPatternImage: [UIImage imageNamed: @ "tableViewBg.png"]]; _tableView.backgroundColor = [UIColor clearColor]; –

+0

Nếu tôi nhớ chính xác UITableView có nền xem cuộn .. Hãy thử điều này .. thêm vào câu trả lời của tôi. –

+0

Hmmm, điều đó không làm gì nhiều, tôi không hiểu tại sao nó không hoạt động ở đây, trong bất kỳ bảng nào khác tôi đã sử dụng cùng một mã hoạt động tốt –

5

tại sao bạn không đặt tableView.backgroundView? bạn có thể phân bổ chế độ xem hình ảnh với hình ảnh được chỉ định và chuyển nó sang chế độ xem nền thay vì đặt màu nền.

+0

Không phải là tableView.backgroundColor ở đó để thay đổi màu nền? Sử dụng tableView.backgroundView có vẻ như một giải pháp dài –

+8

Thực ra câu trả lời của bạn đã giúp tôi, chỉ ra tại sao bạn nhóm một UITableView, backgroundView được thiết lập, bằng cách sử dụng self.tableView.backgroundView = nil; bạn loại bỏ nó –

0

Chỉ muốn thêm vào câu trả lời của Nirav - nó cũng có thể được thực hiện bằng proxy xuất hiện iOS 5.

[[UITableView appearance] setBackgroundView:nil]; 
[[UITableView appearance] setBackgroundColor:[UIColor lightGreyColor]]; 

Lợi thế là nó được áp dụng trên toàn cầu, vì vậy bạn có thể nhóm tất cả các tùy chỉnh giao diện người dùng của bạn ở một nơi. Tuy nhiên, nó sẽ áp dụng cho tất cả các tableViews (không chỉ là kiểu được nhóm).

0
tableView.backgroundView = nil; 
tableView.backgroundColor = [UIColor colorWithPatternImage: xxx]; 
// tableView.backgroundColor = [UIColor redColor]; // is ok 

nếu bạn đặt màu nền là màu này, khi bạn cuộn bảngXem, chế độ xem màu nền cũng sẽ cuộn. vì vậy, bạn có thể: tableView.backgroundView = nil; self.view.backgroundColor = ...

1

Câu trả lời được chọn hoạt động nhưng nó sẽ xóa nền của cả tableHeaderView và chế độ xem tiêu đề mục bảng. Nếu bạn chỉ muốn tiêu đề bảng có một màu nhất định, màu trắng và tiêu đề phần vẫn là màu xám mặc định, hãy làm như sau -

tableView.tableHeaderView.inputView.backgroundColor = [UIColor whiteColor]; 
Các vấn đề liên quan