ラベルを変更できるInterfaceBuilderで再利用可能なTableViewCellを作成するにはどうすればよいですか?
これも可能ですか?私が理解していることから、Appleは最近Interface BuilderでカスタムTableViewCellを提供しているので、これは可能でしょうか?
追伸 IBのTableViewCellに関する質問がたくさんあることは知っていますが、ラベルを機能させる人は見つかりませんでした。
ラベルを変更できるInterfaceBuilderで再利用可能なTableViewCellを作成するにはどうすればよいですか?
これも可能ですか?私が理解していることから、Appleは最近Interface BuilderでカスタムTableViewCellを提供しているので、これは可能でしょうか?
追伸 IBのTableViewCellに関する質問がたくさんあることは知っていますが、ラベルを機能させる人は見つかりませんでした。
再利用されているセル内のすべてを変更できます。IBで作成するラベルをカスタマイズするには、IB自体にタグを設定し、同じタグを使用してラベルをフェッチする必要があります。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
MyCell* cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if(cell == nil)
{
cell = [[[MyCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease];
}
// Configure the cell.
//Do anything here with the labels. Even add or remove them.
(UILabel*) label1 = (UILabel*)[cell viewWithTag:1];
return cell;
}
以前は受け入れられた回答と同じ方法でそれを行っていましたが、Pascalで「goto」を使用しているように、常にタグを使用していると感じていました。汚れた感じ。しかし、多分それは私だけです、タグはうまく機能します。
ただし、別の方法があります。UITableViewCellをサブクラス化し、IBOutletプロパティを作成し、IBで接続し、cellForRowAtIndexPath:
コードでプロパティを参照します。そのようです:
interface MyCustomCell : UITableViewCell
@property (nonatomic, weak) IBOutlet UILabel *myAwesomeLabel;
@end
セルのクラスをIBのMyCustomCellに設定することを忘れないでください。
その後、あなたはそのように直接IBであなたの財産を接続することができます
そして、テーブルビューデータソースで、このプロパティにアクセスできるようになりました
#import "MyCustomCell.h"
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
MyCustomCell *cell = (MyCustomCell *)[tableView dequeueReusableCellWithIdentifier:@"MyCell"];
if (cell) {
cell.myAwesomeLabel.text = @"Hello, World!";
}
return cell;
}
タグを使用するとエラーが発生しやすく、タグを多数使用するとすぐに混乱する可能性があります。