0

UITableView を使用して写真フィードを作成しようとしています。テーブルを作成するコードがあり、写真が撮られたときにフィードに表示されますが、画像は表示されません。画像は反抗的にキャプチャされており、UIImageViewを使用して表示すると機能しますが、テーブルに追加しようとすると機能しません。また、空のテーブルの行をクリックすると、 didSelectRow アクションが機能しないことに気付きました。問題がテーブルにあるのか、画像が表示される方法にあるのかわかりません。

テーブルを作成するために使用しているコードは次のとおりです。

tableView = [[UITableView alloc] initWithFrame:self.view.bounds style:UITableViewStylePlain];
tableView.delegate = self;
tableView.dataSource = self;
tableView.separatorColor = [UIColor clearColor];
[self.view addSubview:tableView];
[_tableView release];
[self.tableView release];

テーブルの残りのコードは次のとおりです。

#pragma mark - UITableViewDataSource
// number of section(s), now I assume there is only 1 section
- (NSInteger)numberOfSectionsInTableView:(UITableView *)theTableView
{
    return 1;
}

// number of row in the section, I assume there is only 1 row
- (NSInteger)tableView:(UITableView *)theTableView numberOfRowsInSection:(NSInteger)section
{
    return 1;
}

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
    //    if (indexPath.section >= self.objects.count) {
    //        // Load More Section
    //        return 320.0f;
    //    }
    //
    return 320.0f;
}

// the cell will be returned to the tableView
- (UITableViewCell *)tableView:(UITableView *)theTableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *cellIdentifier = @"HistoryCell";
    // Similar to UITableViewCell, but
    PhotoCell *cell = (PhotoCell *)[theTableView dequeueReusableCellWithIdentifier:cellIdentifier];
    if (cell == nil) {
        cell = [[PhotoCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];
    }
    // Just want to test, so I hardcode the data
    cell.descriptionLabel.text = @"Testing";
    cell.thumbImage = self.thumbImage;
    //cell.backgroundView = self.thumbImage;

    return cell;
}

#pragma mark - UITableViewDelegate
// when user tap the row, what action you want to perform
- (void)tableView:(UITableView *)theTableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    DetailViewController *detailsViewController = [[DetailViewController alloc] init];
    [self.navigationController pushViewController:detailsViewController animated:YES];
}

PhotoCell.M は次のとおりです。

 #import "PhotoCell.h"
#import "FeedViewController.h"
#import "DetailViewController.h"

@implementation PhotoCell

@synthesize thumbImage = _thumbImage;

- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
    if (self) {
        // configure control(s)

        UIImageView *testView = [[UIImageView alloc] initWithImage:self.thumbImage];
        testView.frame = CGRectMake(0, 0, 320, 320);
        [self addSubview:testView];
        [self bringSubviewToFront:testView];

    }
    return self;
}

@end
4

3 に答える 3

0

PhotoCell.M の「initWithStyle」の時点で、thumbImage プロパティがまだ設定されていないためだと思います。

私だったら、PhotoCell の setThumbImage 関数をオーバーライドして、画像を imageview に設定します。

于 2013-11-14T02:09:44.153 に答える
0

testView が alloc の場合、その時点での self.thumbImage は nil です。

cell.imageView.image を設定するだけで試してみることができます!

于 2013-11-14T02:16:25.437 に答える