ストーリーボード内で定義されているIBOutlet接続とともに、プロトタイプセルをロードする方法はありますか?
更新
セル(その母体のUICollectionViewCell)を単体テストしたいので、UIViewControllerコンテキストの外部にロードしたいと思います。
事実上、ペン先からカスタムビューをロードできるのと同じ方法で、ファイルの所有者を指定し、IBOutletを設定します。
私はまだユニットテストでこれを試していませんが、カスタムのUITableViewCell
を別のペン先に簡単に入れることができます。
ビューコントローラで使用するには、セルを登録 tableViewsに登録する必要があります。
UINib *nib = [UINib nibWithNibName:@"ABCNameOfYourNibCell" bundle:nil];
[self.tableView registerNib:nib forCellReuseIdentifier:@"myCustomCell"];
次に、cellForRowAtIndexPath:
でこのようなセルを使用します
static NSString *CellIdentifier = @"myCustomCell";
ABCNameOfYourNibCell *cell =
[tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
あなたのテスト目的あなたは一緒に行くことができるはずです:
ABCNameOfYourNibCell *testCell =
[[ABCNameOfYourNibCell alloc] initWithStyle: UITableViewCellStyleDefault reuseIdentifier:nil];
再利用動作をテストする必要がある場合は、ここでreuseIdentifierを設定し、セルでprepareForReuse
を呼び出す必要があります。
通常、UITableViewController
またはUITableView
を作成します。 UITableViewCell
クラスも作成する必要があります。 UITableViewCell
クラスを作成した後、「UIStoryboard」に移動し、セルを選択します。
次に、Identity Inspector
内にUITableViewCell
クラスを設定します。
次に、要素をUITableViewCell
に追加し、それらをクラスに接続します
次に、Attributes Inspector
内にCellIdentifier
を追加します。
UITableViewController
メソッドがあるUIViewController
またはUITableViewDelegate
に到達せず、次のようにセルを呼び出します(UITableViewCell
の先頭にあるViewController
クラスを#import
することを忘れないでください:
- (UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"MyIdentifier";
MyCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier
forIndexPath:indexPath];
[cell.label setText:[NSString stringWithFormat:@"My Cell at Row %ld",
(long)indexPath.row]];
return cell;
}