Tôi đã thử một số điều trên, và Tôi thực sự thích tạo lớp con của riêng mình của UITableViewCell và sau đó ghi đè các chạm chạmBegan/touchesCộng đồng/chạm Phương thức được sử dụng. Để thực hiện điều này, bỏ qua tất cả các thuộc tính đã chọnBackgroundView và highlightColor được chọn trên ô và thay vào đó, chỉ cần đặt các màu này theo cách thủ công bất cứ khi nào một trong các phương thức trên được gọi. Ví dụ, nếu bạn muốn thiết lập các tế bào để có một nền màu xanh lá cây với văn bản màu đỏ, hãy thử này (trong lớp tế bào tùy chỉnh của bạn):
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
//Set backgorund
self.backgroundColor = [UIColor themeBlue];
//Set text
self.textLabel.textColor = [UIColor themeWhite];
//Call super
[super touchesBegan:touches withEvent:event];
}
Lưu ý rằng để làm việc này, bạn cần phải thiết lập:
self.selectionStyle = UITableViewCellSelectionStyleNone;
Nếu không, trước tiên bạn sẽ nhận được phong cách lựa chọn hiện tại.
EDIT: Tôi khuyên bạn nên sử dụng phương pháp touchesCancelled để hoàn nguyên về màu gốc của ô, nhưng chỉ cần bỏ qua phương thức touchesEnded.
Nguồn
2012-07-22 12:02:16
Tôi rất muốn giới thiệu phương pháp tiếp cận của Matt Gallagher đối với phương pháp mà bạn đã chấp nhận! Hãy xem xét cho nó một cái nhìn nếu bạn chưa có. –
Câu trả lời trong bài đăng này rất lộn xộn. Mọi người vui lòng bỏ qua những người được xếp hạng cao nhất và bỏ phiếu cho các câu trả lời chính xác thực sự, ở dưới cùng. – bentford