UITableViewDelegateプロトコル

2013. 07. 29
・準拠
NSObject
UIScrollViewDelegate

・フレームワーク
/System/Library/Frameworks/UIKit.framework

・利用可能
iOS 2.0以降で利用可能

・手引書
iOS Table View プログラミングガイド

・宣言
UITableView.h



●概要

UITableViewオブジェクトのデリゲートはUITableViewDelegateプロトコルを採用する必要があります。
プロトコルのオプションメソッドは、デリゲートによる選択の管理、セクションのヘッダとフッタの設計、セルの削除や並べ替えの補助、その他のアクションの実行をすることができます。

UITableViewDelegateの多くのメソッドは、パラメータや戻り値としてNSIndexPathオブジェクトを取ります。
UITableViewは、表示された行インデックス(rowプロパティ)とセクションインデックス(sectionプロパティ)を取得し、指定した行インデックスとセクションインデックス(indexPathForRow:inSection:メソッド)からインデックスパスを構築することができるように、NSIndexPath上のカテゴリを宣言します。
行はそのセクション内に配置されるので、通常はインデックス番号によって行を識別する前に、セクションインデックス番号を求める必要があります。



●タスク

●テーブルビューへのテーブルセルの提供

– tableView:heightForRowAtIndexPath:
– tableView:indentationLevelForRowAtIndexPath:
– tableView:willDisplayCell:forRowAtIndexPath:

●アクセサリビューの管理

– tableView:accessoryButtonTappedForRowWithIndexPath:
– tableView:accessoryTypeForRowWithIndexPath:    iOS 3.0では非推奨

●選択の管理

– tableView:willSelectRowAtIndexPath:
– tableView:didSelectRowAtIndexPath:
– tableView:willDeselectRowAtIndexPath:
– tableView:didDeselectRowAtIndexPath:

●セクションのヘッダとフッタの変更

– tableView:viewForHeaderInSection:
– tableView:viewForFooterInSection:
– tableView:heightForHeaderInSection:
– tableView:heightForFooterInSection:
– tableView:willDisplayHeaderView:forSection:
– tableView:willDisplayFooterView:forSection:

●テーブル行の編集

– tableView:willBeginEditingRowAtIndexPath:
– tableView:didEndEditingRowAtIndexPath:
– tableView:editingStyleForRowAtIndexPath:
– tableView:titleForDeleteConfirmationButtonForRowAtIndexPath:
– tableView:shouldIndentWhileEditingRowAtIndexPath:

●テーブル行の並べ替え

– tableView:targetIndexPathForMoveFromRowAtIndexPath:toProposedIndexPath:

●ビューの除去の追跡

– tableView:didEndDisplayingCell:forRowAtIndexPath:
– tableView:didEndDisplayingHeaderView:forSection:
– tableView:didEndDisplayingFooterView:forSection:

●行コンテンツのコピーとペースト

– tableView:shouldShowMenuForRowAtIndexPath:
– tableView:canPerformAction:forRowAtIndexPath:withSender:
– tableView:performAction:forRowAtIndexPath:withSender:

●テーブルビューの強調表示の管理

– tableView:shouldHighlightRowAtIndexPath:
– tableView:didHighlightRowAtIndexPath:
– tableView:didUnhighlightRowAtIndexPath:



●インスタンスメソッド

tableView:accessoryButtonTappedForRowWithIndexPath:

ユーザが特定の行に関連付けされたアクセサリ(ディスクロージャ)ビューをタップしたことをデリゲートに伝えます。

- (void)tableView:(UITableView *)tableView accessoryButtonTappedForRowWithIndexPath:(NSIndexPath *)indexPath

パラメータ
tableView
このイベントをデリゲートに伝えるテーブルビューオブジェクトを指定します。
indexPath
tableViewの行の位置を示すインデックスパスを指定します。

解説
デリゲートは通常、選択された行に関連付けされている新しいビューを表示することによって、ディスクロージャボタン(アクセサリビュー)のタップに応答します。
このメソッドは、indexPathの示す行にアクセサリビューが設定されていない時は呼び出されません。

利用可能
iOS 2.0以降で利用可能。

宣言
UITableView.h


tableView:accessoryTypeForRowWithIndexPath:

指定された行のディスクロージャコントロールとして使用するための、標準的なアクセサリビューの型をデリゲートに尋ねます。
(iOS 3.0では非推奨です。テーブルビューのセルを構成する時は、UITableViewCellのアクセサリビューと(標準と編集の両方のモードで)アクセサリ型プロパティを使用します。)

- (UITableViewCellAccessoryType)tableView:(UITableView *)tableView accessoryTypeForRowWithIndexPath:(NSIndexPath *)indexPath

パラメータ
tableView
アクセサリビュー型を必要とするテーブルビューオブジェクトを指定します。
indexPath
tableView内の行の位置を示すインデックスパスを指定します。

戻り値
標準的なアクセサリビューの型を識別する定数です。
詳細はUITableViewCellクラスのCell Accessory Typeを参照してください。

利用可能
iOS 2.0以降で利用可能。
iOS 3.0で非推奨。

宣言
UITableView.h


tableView:didSelectRowAtIndexPath:

指定された行が現在選択されていないことをデリゲートに通知します。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

パラメータ
tableView
行が選択されていないことをデリゲートに知らせるテーブルビューオブジェクトを指定します。
indexPath
テーブルビュー内の選択されていない行の場所のインデックスパスを指定します。

解説
デリゲートはこのメソッド内で行の選択解除を処理します。
例えば行に関連付けされたチェックマーク画像(UITableViewCellAccessoryCheckmark)を削除することができます。

利用可能
iOS 3.0以降で利用可能。

宣言
UITableView.h


tableView:editingStyleForRowAtIndexPath:

テーブルビュー内の特定の場所での行の編集スタイルをデリゲートに尋ねます。

- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath

パラメータ
tableView
この情報を必要とするテーブルビューオブジェクトを指定します。
indexPath
tableView内の行の場所を示すインデックスパスを指定します。

戻り値
indexPathによって識別された行のセルの編集スタイルです。

解説
このメソッドは、indexPathの場所にあるセルの編集スタイルをカスタマイズできることをデリゲートに許します。
デリゲートがこのメソッドを実装しておらず、UITableViewCellオブジェクトが編集可能(つまりeditingプロパティがYESに設定されている)の場合、セルにはUITableViewCellEditingStyleDeleteスタイルが設定されます。

利用可能
iOS 2.0以降で利用可能。

宣言
UITableView.h


tableView:heightForRowAtIndexPath:

指定した場所の行に適用する高さをデリゲートに尋ねます。

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath

パラメータ
tableView
この情報を必要とするテーブルビューオブジェクトを指定します。
indexPath
tableView内の行の場所を示すインデックスパスを指定します。

戻り値
行に適用する(ポイント単位の)高さの浮動小数点値です。

解説
メソッドはデリゲートに行高の変更を指定することができます。
このメソッドを実装すると、戻り値は指定した行のUITableViewのrowHeightプロパティで指定されている値をオーバーライドします。

パフォーマンスに影響が出る場合は、rowHeightプロパティの代わりにtableView:heightForRowAtIndexPath:を使用してください。

テーブルビューを表示する度に、各行のデリゲートでtableView:heightForRowAtIndexPath:が呼び出されるので、(約1000行以上の)多数の行を持つテーブルビューではパフォーマンスに重大な結果を与えます。

重要:基本的に実装する際は、戻り値が2009より大きくならないようにしてください。

利用可能
iOS 2.0以降で利用可能。

宣言
UITableView.h


tableView:indentationLevelForRowAtIndexPath:

指定したセクション内の行のインデントレベルを返すために、デリゲートに尋ねます。

- (NSInteger)tableView:(UITableView *)tableView indentationLevelForRowAtIndexPath:(NSIndexPath *)indexPath

パラメータ
tableView
この情報を必要とするテーブルビューオブジェクトを指定します。
indexPath
tableView内の行の場所を示すインデックスパスを指定します。

戻り値
セクション内の階層の位置を表示するための、指定した行の深さを返します。

利用可能
iOS 2.0以降で利用可能。

宣言
UITableView.h


tableView:willDisplayCell:forRowAtIndexPath:

テーブルビューが特定の行のセルの描画について、デリゲートに伝えます。

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath

パラメータ
tableView
この切迫したイベントをデリゲートに伝えるテーブルビューオブジェクトを指定します。
cell
tableViewが行を描画する時に使用するテーブルビューのセルオブジェクトを指定します。
indexPath
tableView内の行の場所を示すインデックスパスを指定します。

解説
テーブルビューは行を描画するためにcellを使用する直前にデリゲートにこのメッセージを送信し、それによって表示する前にデリゲートがセルオブジェクトをカスタマイズすることを可能にします。
このメソッドは選択や背景色などの、テーブルビューによって初期に設定された状態ベースのプロパティをオーバーライドする機会をデリゲートに与えます。
デリゲートが戻った後にテーブルビューが設定できるのは、アルファとフレームプロパティ、そしてスライドイン/アウトのような行のアニメーションのみです。

利用可能
iOS 2.0以降で利用可能。

宣言
UITableView.h


tableView:willSelectRowAtIndexPath:

指定した行が選択されたことをデリゲートに伝えます。

- (NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath

パラメータ
tableView
切迫した選択についてデリゲートに伝えるテーブルビューを指定します。
indexPath
tableView内の行の場所を示すインデックスパスを指定します。

戻り値
選択された行を確認または変更するインデックスパスオブジェクトです。
別のセルを選択したい場合は、indexPath以外のNSIndexPathオブジェクトを返します。
行が選択されたくない場合はnilを返します。

解説

このメソッドはユーザが行をタッチして指を離すまで呼び出されません。
行はタッチダウンで強調表示にはなりますが、まだ選択されていません。
タッチダウンの際にセルの外観が強調表示されるのを無効にしたい場合は、UITableViewCellSelectionStyleNoneを使用することができます。

このメソッドは、テーブルビューが編集中でも選択できる(つまりテーブルビューのallowsSelectionDuringEditingプロパティがYESに設定されている)場合を除き、テーブルビューが編集モード(つまりテーブルビューのeditingプロパティがYESに設定されている)の場合は呼び出されません。

利用可能
iOS 2.0以降で利用可能。

宣言
UITableView.h



参考文献

UITableViewDelegate Protocol Reference

Deprecated UITableViewDelegate Methods






Wave SoundTouch music system IV
0 Comments
Leave a comment
管理者にだけ表示を許可する
Top
0 Trackbacks
Top
Calendar
06 | 2017/07 | 08
Sun Mon Tue Wed Thu Fri Sat
- - - - - - 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 - - - - -
Recent Articles
iTunes


Swift
Categories
Tips
Profile

水月杏香

Author:水月杏香
永遠の初心者プログラマ。

Wish List
WACOM


ARC
Technical Q&A
情報プロパティリストキー
Start Developing iOS Apps Today
BOSE

Wave SoundTouch music system IV
Reference
NSApplicationDelegateプロトコル
NSArrayクラス
NSAutoreleasePoolクラス
NSBundleクラス
NSBundle UIKit追加分
NSCalendarクラス
NSCoderクラス
NSCodingプロトコル
NSCopyingプロトコル
NSDataクラス
NSDateクラス
NSDateFormatterクラス
NSDictionaryクラス
NSEntityDescriptionクラス
NSEnumeratorクラス
NSErrorクラス
NSExceptionクラス
NSFetchRequestクラス
NSFileHandleクラス
NSFileManagerクラス
NSIndexPathクラス
NSIndexPath UIKit追加分
NSKeyedArchiverクラス
NSKeyedUnarchiverクラス
NSKeyValueCodingプロトコル
NSLocaleクラス
NSManagedObjectクラス
NSManagedObjectContextクラス
NSManagedObjectModelクラス
NSMutableArrayクラス
NSMutableCopyingプロトコル
NSMutableDictionaryクラス
NSMutableSetクラス
NSNotificationクラス
NSNotificationCenterクラス
NSNullクラス
NSNumberクラス
NSObjectクラス
NSObject UIKit追加分
NSObjectプロトコル
NSPersistentStoreクラス
NSPersistentStoreCoordinatorクラス
NSPredicateクラス
NSPropertyListSerializationクラス
NSRunLoopクラス
NSSetクラス
NSStringクラス
NSString UIKit追加分
NSTimerクラス
NSTimeZoneクラス
NSURLクラス
NSURLProtectionSpaceクラス
NSURLRequestクラス
NSUserDefaultsクラス
NSValueクラス

UIActionSheetクラス
UIActionSheetDelegateプロトコル
UIActivityIndicatorViewクラス
UIAlertViewクラス
UIAlertViewDelegateプロトコル
UIApplicationクラス
UIApplicationDelegateプロトコル
UIBarButtonItemクラス
UIBarItemクラス
UIButtonクラス
UIColorクラス
UIControlクラス
UIDatePickerクラス
UIDeviceクラス
UIEventクラス
UIFontクラス
UIGestureRecognizerクラス
UIImageクラス
UIImageViewクラス
UIKit Function
UILabelクラス
UINavigationControllerクラス
UINavigationItemクラス
UIPickerViewクラス
UIPickerViewDataSourceプロトコル
UIPickerViewDelegateプロトコル
UIPinchGestureRecognizerクラス
UIResponderクラス
UIScreenクラス
UIScrollViewクラス
UISearchBarクラス
UISearchBarDelegateプロトコル
UISegmentedControlクラス
UISliderクラス
UISwipeGestureRecognizerクラス
UISwitchクラス
UITableViewクラス
UITableViewCellクラス
UITableViewControllerクラス
UITableViewDataSourceプロトコル
UITableViewDelegateプロトコル
UITapGestureRecognizerクラス
UITextFieldクラス
UITextFieldDelegateプロトコル
UITextInputTraitsプロトコル
UITextViewクラス
UITextViewDelegateプロトコル
UIToolbarクラス
UITouchクラス
UIViewクラス
UIViewControllerクラス
UIWebViewクラス
UIWebViewDelegateプロトコル
UIWindowクラス

AVAudioPlayerクラス
AVAudioPlayerDelegateプロトコル

CADisplayLinkクラス
CAEAGLLayerクラス
CALayerクラス

CGAffineTransform
CGBitmapContext
CGColor
CGColorSpace
CGContext
CGGeometry
CGImage
CGPath

EAGLContextクラス
EAGLDrawableプロトコル

Foundation Constants
Foundation Data Types
Foundation Functions

MPMediaItemクラス
MPMediaItemArtworkクラス
MPMediaPlaylistクラス
MPMediaPropertyPredicateクラス
MPMediaQueryクラス
MPMusicPlayerControllerクラス

Randomization Services

System Sound Services
Amazon


OpenGL ES
SQLite
Monthly Archives
Recent Comments
Recent TrackBacks
RSS Link
Visitors
QR Code
QR