0

ここで多くのコードを長い間検索してきましたが、何も役に立ちませんでした....

プログラムでカスタム TableViewCell を作成しましたが、それらを別のビューに接続したいと考えています。これが私のコードです。

.h ファイル

//  GTCustomCellView.h
#import "GTView.h"
@interface GTCustomCellView : UITableViewCell
@property (nonatomic, retain) GTView* containerView;
@property (nonatomic, retain) GTImageView* commentImageView;
@property (nonatomic, retain) GTTextView* commentView;
@property (nonatomic, retain) GTTextView* dateView;
@property (nonatomic, retain) GTTextView* authorView;
@property (nonatomic, retain) GTView* groupView;
@property (nonatomic, retain) UILabel* mainView;

@end

.m ファイル

@implementation GTCustomCellView


- (id)initWithFrame:(CGRect)frame {
self = [super initWithFrame:frame];
if (self) {

    self.layout = [[[GTFlowLayout alloc] initWithSpacing: 0] autorelease];
    self.backgroundColor = GTDefaultBackgroundColor;


    self.containerView = [[[GTView alloc] initWithFrame:CGRectMake(0.0, 0.0, self.frame.size.width, 100.0f)]autorelease];
    [self.contentView addSubview:self.containerView];


    self.commentImageView = [[[GTImageView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 70.0f, 70.0f)] autorelease];
    [self.containerView addSubview:self.commentImageView];


    self.groupView =[[[GTView alloc] initWithFrame:CGRectMake(70.0, 0.0, self.frame.size.width - self.commentImageView.frame.size.width, self.containerView.frame.size.height)]autorelease];
    [self.containerView addSubview: self.groupView];


    self.authorView = [[[GTTextView alloc] initWithFrame:CGRectMake(0.0, 0.0, self.frame.size.width, 20.0f)]autorelease];
    [self.groupView addSubview:self.authorView];

    self.dateView = [[[GTTextView alloc] initWithFrame:CGRectMake(0.0, 20.0, self.frame.size.width, 20.0f)]autorelease];
    [self.groupView addSubview:self.dateView];

    self.commentView = [[[GTTextView alloc] initWithFrame:CGRectMake(0.0, 40.0, self.frame.size.width, 60.0f)]autorelease];
    [self.groupView addSubview:self.commentView];


}
return self;
}

そして、ここに他のビューの重要な部分があります:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

static NSString *CellIdentifier = @"Cell";

GTCustomCellView *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
    cell = [[[GTCustomCellView alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}


cell.authorView.text = @"Author Test";
cell.dateView.text = @"Date Test";
cell.commentView.text = @"Comment test";


return cell;
}

私は空のセルしか取得しません。私の唯一のアイデアは、UILabelsではなくビューを使用することですか?

4

2 に答える 2

0

テーブル ビューのデリゲートとデータ ソースを設定しましたか。

yourTableView.delegate = self;
yourTableView.dataSource = self;

これはView Controllerで行う必要があります。

于 2013-07-25T17:18:40.087 に答える
0

initWithFrame の代わりに - (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier を使用してください

追加情報はこちら: iPhone SDK 3.0 以降、カスタム tableviewcell に initWithFrame を使用しても問題ありませんか?

于 2013-07-25T17:19:01.817 に答える