TTTableMessageItem의 인스턴스를 만들 때 imageURL, caption, title 등만 액세스 할 수 있습니다. TTTableMessageItem (Three20)의 제목 색상을 변경할 수 있습니까?TTTableMessageItem (Three20)의 제목 색상을 변경할 수 있습니까?
답변
예, 약간의 작업이 필요하지만 (불행히도이를 이해하려면 Three20에 대한 경험이 필요합니다).
첫째, 배경 : 당신이 TTTableMessageItem
가, Three20 나중에 유형 TTTableMessageItemCell
의 테이블 셀을 생성합니다 생성
. 합니다 (Three20UI 프로젝트에 -[TTTableMessageDataSource tableView:cellClassForObject:]
의 코드를 참조하십시오.)
당신이 (같은 프로젝트) 클래스 TTTableMessageItemCell
의 소스 코드를 보면 그래서, 당신이 titleLabel
라는 속성을 가지고 있음을 볼 수 있습니다. 해당 레이블을 만드는 - (UILabel*)titleLabel
함수에서 _titleLabel.textColor = [UIColor blackColor]
을 설정합니다.
이렇게하면 제목 색을 변경하는 방법을 알아내는 데 필요한 정보가 제공됩니다. TTTableMessageItemCell
인스턴스의 titleLabel.textColor
속성을 변경하는 방법을 찾아야합니다. 당신이 취할 수있는 몇 가지 접근법이 있습니다.
쉬운 방법이지만 틀림없이 깨끗하지는 않지만 (실제로 그렇게 나쁘지는 않음) 자신의 테이블 대리자 클래스 (하위 클래스 TTTableViewVarHeightDelegate
)를 만든 다음 하위 클래스에 -[tableView:willDisplayCell:forRowAtIndexPath:]
을 구현하는 것입니다. 이 함수에서 titleLabel의 textColor를 변경합니다. 이 방법을 촬영하려면 :
자신의 테이블 뷰 위임 클래스를 생성 -
TTTableViewVarHeightDelegate
의 서브 클래스를.@interface MyDelegate : TTTableViewVarHeightDelegate @end
그리고 여기
MyDelegate.m
입니다 : 예를 들어, 다음MyDelegate.h
당신의 테이블 뷰 컨트롤러에서@implementation MyDelegate - (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath { if ([cell isKindOfClass:[TTTableMessageItemCell class]]) { TTTableMessageItemCell* messageCell = (TTTableMessageItemCell*)cell; messageCell.titleLabel.textColor = [UIColor blueColor]; } } @end
(
TTTableViewController
의 하위 클래스),createDelegate
를 오버라이드 (override) :- (id <UITableViewDelegate>) createDelegate { return [[[MyDelegate alloc] initWithController:self] autorelease]; }
다른 접근법, 즉 perhap 좀 더 청결하지만 더 많은 작업이 필요하다면, 하위 클래스 인 TTTableMessageItem
과 TTTableMessageItemCell
; TTTableMessageItemCell
하위 클래스에서 제목 색상을 변경합니다 (예 : -[titleLabel]
무시). 서브 클래스 TTListDataSource
또는 TTSectionedDataSource
; 하위 클래스에서 -[tableView:cellClassForObject:]
을 재정의하십시오. TTTableMessageItem
하위 클래스의 인스턴스가 전달되면 TTTableMessageItemCell
하위 클래스의 인스턴스를 반환합니다. 아휴! 이 코드를 사용하면 코드 재사용이 가능합니다. 테이블은 TTTableMessageItem
하위 클래스의 인스턴스를 반환하고 셀 색상 지식을 테이블 뷰에 배치하기 때문에 약간의 해킹 인 위의 기법 대신 적절하게 색상이 지정된 제목을 얻을 수 있습니다. 대의원은 실제로 그 곳이 아닙니다. 그러나 볼 수 있듯이 색상을 변경하는 것과 같은 단순한 작업을 위해서는 뛰어 넘기가 쉽습니다.
- 1. Gridview에서 특정 셀의 색상을 변경할 수 있습니까?
- 2. EditText`dots '의 색상을 변경할 수 있습니까?
- 3. iPhone : UINavigationBar 프롬프트의 색상을 변경할 수 있습니까?
- 4. bg 색상을 기준으로 로딩 표시기 색상을 변경할 수 있습니까?
- 5. 제목 속성을 변경할 수 없습니다.
- 6. 어떻게 asp.net 프로젝트에서 툴팁 (제목 속성) 글꼴과 색상을 변경할 수 있습니까?
- 7. ahref 색상을 변경할 수 있지만 tr에 없습니다.
- 8. ZEDGraph는 축 색상을 변경할 수 없습니다.
- 9. as3/flex 빌더 - trace 문의 색상을 변경할 수 있습니까?
- 10. 페이스 북을 버튼처럼 확대하거나 색상을 변경할 수 있습니까?
- 11. Android : EditText의 테두리 색상을 동적으로 변경할 수 있습니까?
- 12. UISearchDisplayController의 검색 막대 테두리 색상을 변경할 수 있습니까?
- 13. asp.net 텍스트 상자가 비활성화되어있을 때 뒤로 색상을 변경할 수 있습니까?
- 14. jQuery 플러그인 GalleryView에서 스트립 랩퍼의 테두리 색상을 변경할 수 있습니까?
- 15. 어떻게 CEikRichTextEditor에서 텍스트 색상을 변경할 수 있습니까? Symbian
- 16. ProgressDialog의 스타일, 제목 및 메시지를 즉시 변경할 수 있습니까?
- 17. Three20의 문제점
- 18. MATLAB에서 프롬프트를 변경할 수 있습니까?
- 19. 스크립트를 변경할 수 있습니까?
- 20. popover 제목 표시 줄의 색상을 기본 navigationBar와 동일하게 설정하려면 어떻게해야합니까?
- 21. (Telerik) RadRibbonBar의 제목 텍스트의 색상을 변경하려면 어떻게해야합니까?
- 22. 이미지 테두리의 기본 색을 변경할 수 있습니까?
- 23. FullCalendar에서 행 배경색을 번갈아 변경할 수 있습니까?
- 24. 마지막 p 스타일은 CSS로만 변경할 수 있습니까?
- 25. Three20의 속성 가시성 변경
- 26. JTree에 색상을 설정할 수 있습니까?
- 27. WordPress 페이지의 기본 관리자를 변경할 수 있습니까?
- 28. 위젯 생성자 외부에서 windowFlags를 변경할 수 있습니까?
- 29. JFrame 또는 JInternalFrame의 제목 표시 줄 색을 변경할 수 있습니다
- 30. 어떻게 변경할 수 있습니까? 변경할 수 있습니다. 스칼라 매핑?
먼저, 설명해 주셔서 감사합니다. 그것은 매우 유용합니다. 나는 TTTableMessageItemCell을 사용하여 문제를 해결했다. 하지만 TTTableMessageItemCell 사용할 때 모든 행을 선택할 수 없습니다. didSelectObject 메서드는 셀을 클릭 할 때 작동하지 않습니다. 전에 TTTableMessageItem에 대한 URL이 설정되었습니다.TTTableMessageItemCell은 TTTableMessageItem과 같은 URL을 지원합니까? 고맙습니다. –
나는 당신의 질문을 이해하지 못합니다. URL과 didSelectObject는 잘 작동해야합니다. 생성 한 TTTableMessageItem에 URL을 설정하기 만하면 TTTableMessageItemCell에서 해당 URL을 사용하고 클릭 할 수있게해야합니다. –
문제가 해결되었습니다. 설명해 주셔서 감사합니다. –