ああ、私はあなたが今何を望んでいるのか分かります。
必要なのは、テーブル ビューのセルにデータを表示することです。次に、アプリ内の別の場所に移動し、同じデータを別のテーブル ビューに表示しますが、まったく同じ方法でレイアウトします。
その時あなたがすることはこれです...
最初に、 のサブクラスである新しいクラスを作成しUITableViewCell
ますMyTableViewCell
。
次の部分は、Interface Builder を使用しているかどうかによって異なりますが、ここではコードですべてを行います。
新しいクラスで、.h ファイルにインターフェイス プロパティを作成します。
@interface MyTableViewCell : UITableViewCell
@property (nonatomic, strong) UILabel *nameLabel;
@property (nonatomic, strong) UIImageView *someImageView;
etc...
@end
.mファイルで、次のように設定できます...
@実装 MyTableViewCell
- (void)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self) {
//set up your labels and add to the contentView.
self.nameLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 10, 10)];
[self.contentView addSubView:self.nameLabel];
self.someImageView = ...
[self.contentView addSubView:self.someImageView];
// and so on for all your interface stuff.
}
return self;
}
@end
UITableViewController
このセルを使用したい場合は、次のことができます...
- (void)viewDidLoad
{
// other stuff
[self.tableView registerClass:[MyTableViewCell class] forCellReuseIdentifier:@"MyCustomCellReuseIdentifier"];
// other stuff
}
次に、行のセルで...
- (UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
MyTableViewCell *customCell = [tableView dequeueReusableCellWithIdentifier:@"MyCustomCellReuseIdentifier"];
customCell.nameLabel.text = //some string that you got from the data
customCell.someImageView.image = //some image that you got from the data
return customCell;
}
これを行うと、同じセル レイアウトを複数の場所で使用でき、データを入力するだけで済みます。
データを新しいテーブル ビューに渡すと、同じセル クラスを使用して、渡されたデータを再設定できます。
UIView または UIView サブクラスを渡さないでください。そのようにデータを含めるべきではありません。はそれを表示するためだけに使用されます。