カスタムセルでTTTableViewControllerを使用する際に問題がありますか?カスタムセルを使用するには、UITableViewCellを使用するか、TTTableViewCellをサブクラス化する必要がありますか? TTModelの使い方このすべてを示す良い例がありますか?TTTableViewController with custom cell sample
1
A
答えて
3
TTTableViewCellの最大の問題は、標準のUITableViewCell & UITableViewDelegateとはまったく異なる点です。そのため、UITableViewCellについて知っていることを忘れてしまいます。
nutshellでは、TTTableItem
クラスはデータコンテナであり、TTTableItemCell
クラスは表内のセルの表示を担当します。
たとえば、TTTableMessageItem
クラスには、メッセージに関するすべてのデータ(日付、タイトル、本文など)が含まれます。 TTTableMessageItemCell
クラスには、セルのすべてのUI要素とレイアウトが含まれています。
セルタイプを簡単に変更できるので、標準UITableViewController
よりも柔軟性があることがわかりました。
独自のカスタムクラスタイプを追加する場合は、新しいTTTableItem
サブクラスと新しいTTTableItemCell
サブクラスの両方を定義する必要があります。
HelloTableItem.h - セルのデータが含まれています。
@interface HelloTableItem : TTTableLinkedItem {
NSString *_title;
NSString *_subtitle;
}
@property (nonatomic, copy) NSString *title;
@property (nonatomic, copy) NSString *subtitle;
+ (id)itemWithTitle:(NSString *)title
subtitle:(NSString *)subtitle;
@end
HelloTableItemCell.h - セル自体
@interface HelloTableItemCell : TTTableLinkedItemCell {
UILabel *_titleLabel;
UILabel *_subtitleLabel;
}
@end
HelloTableViewDataSource.m - データソースが担当テーブルアイテムを追加し、各アイテムタイプに使用するセルのタイプを決定する
- (id)init {
if (self = [super init]) {
self.items = [NSArray arrayWithObjects:
[HelloTableItem itemWithTitle:@"First" subtitle:@"Hello #1!"],
[HelloTableItem itemWithTitle:@"Second" subtitle:@"Hello #2!"],
[HelloTableItem itemWithTitle:@"Third" subtitle:@"Hello #3!"],
[HelloTableItem itemWithTitle:@"Fourth" subtitle:@"Hello #4!"],
[HelloTableItem itemWithTitle:@"Fifth" subtitle:@"Hello #5!"],
nil];
}
return self;
}
- (Class)tableView:(UITableView*)tableView cellClassForObject:(id) object {
if ([object isKindOfClass:[HelloTableItem class]]) {
return [HelloTableItemCell class];
}
return [super tableView:tableView cellClassForObject:object];
}
@end
完全なソースコードはここで見つけることができます: http://three20.pypt.lt/custom-cells-in-tttableviewcontroller
関連する問題
- 1. Swift PickerView with custom tableViewCell.xib
- 2. NSUserNotification with custom soundName
- 3. $ mdDialog.confirm()with custom templateUrl
- 4. QScrollArea with custom QFrame
- 5. Ext.Ajax.request with custom enctype
- 6. UITableView with Custom UITableViewCell
- 7. SetWinEventHook with custom data
- 8. Excel Vlookup with cell reference
- 9. Firebase Storage sample with 400 error
- 10. openCV RGB2Gray with custom weights
- 11. Firebase ListAdapter with custom object
- 12. Flask-Admin with Custom Security
- 13. C++:find()with custom == operator
- 14. UISegmentedControl with custom color:セパレータラインバグ
- 15. heapq with custom compare predicate
- 16. std :: string with custom allocator
- 17. ActionMailer with Custom Rake Task
- 18. ul table with li table-cell
- 19. TTTableViewController showMenu:forCell:example
- 20. Wordpress Sticky Posts with Custom Post Types
- 21. android mapview with custom wms tile provider
- 22. Yii 2 Select2 kartik with custom html
- 23. std :: atomic with custom class(C++ 11)
- 24. REST + Spring + POST with custom marshaller
- 25. Apache James Custom Mailet with Async Processing
- 26. フォークGitHubプロジェクトwith custom wiki
- 27. Algolia with Custom Magento Theme(Ultimo)
- 28. UITableView with custom cell subview - respondsToSelector:]:メッセージが割り当て解除されたインスタンスに送信されました
- 29. Three20 TTTableViewControllerとsearchViewController
- 30. Three20 TTThumbsTableViewCellを持つTTTableViewController