0

特定の基本クラスから継承する2つのクラスがあります。これらのクラスには同じテーブルビューメソッドがあるので、そのすべてのロジックを基本クラスに移動することにしました。すべてコード内にnibsファイルはありません。ただし、基本クラスは何らかの理由でテーブルビューイベントに応答しません。そのロジックを基本クラスに移動するのは正しいですか、それとも既知の問題がありますか、それとも実装に何かが欠けていますか?

私はただ割り当てています:

self.tableView.delegate = self;
self.tableView.dataSource = self;

そして、実装:

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
    if ([indexPath section] == 0) {
        return 320;
    }
    else {
        return 0;
    }
}

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    if (section == 0) {
        return [self.imagesArray count];
    }
    else {
        return 0;
    }
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    NSString *cellIdentifier = @"mediaCell";
    UITableViewCell *cell = [self.tableView dequeueReusableCellWithIdentifier:cellIdentifier];

    if (cell == nil) {
        if ([indexPath section] == 0) {
            cell = [[[UITableViewCell alloc] initWithFrame:CGRectMake(0.0, 0.0, 320.0f, 320.0f)] autorelease];

            UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0.0, 0.0, 320.0f, 320.0f)];
            imageView.tag = 1;
            [cell addSubview:imageView];
            [imageView release];
        }
    }

    NSURL *url = [NSURL URLWithString:[self.imagesArray objectAtIndex:[indexPath row]]];
    UIImageView *imageView = (UIImageView *)[cell viewWithTag:1];

    [imageView setImageWithURL:url];

    return cell;
}

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
    if (section == 0) {
        return self.filterBar.bounds.size.height;
    }
    else {
        return 0;
    }
}

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
    if (section == 0) {
        return self.filterBar;
    }
    else {
        return 0;
    }
}
4

1 に答える 1

0

テーブルビューのデリゲート メソッドを意味する場合は、基本クラスの定義にカテゴリを追加していないと思いますが、メソッドが UITableview で使用されるデリゲートであるかどうかを明確にできますか?

于 2012-06-11T06:58:44.933 に答える