0

こんにちは、タグ付きのセル行で 2 つの UIImageView を使用しています。各行は、行 0 の場合は (0 番目の画像、1 番目の画像)、行 1 の場合は (2 番目の画像、3 番目の画像) などの配列から画像を取り込むことによって順次表示されます。 .

各画像に適切なタグを付けて画像を表示することに成功しましたが、dirowselect メソッドで画像またはセルのタグを取得できませんでした...詳細セグへの配列インデックスとしてタグ番号を直接渡すには、タグ番号が必要です... IOS プログラミングは初めてです。ここで何か間違ったことをしていないかどうかを知りたいです。適切なタグ番号を取得する方法を提案してください。 !!

参照用に私のコードを貼り付けました: self.tagnumber=0; このコードは、偶数の画像を表示するためのものです。

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

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    //Check Even Rows or odd rows
    if(_objects.count%2==0)
    {

        return (_objects.count/2);
    }
    else
    {
        return ((_objects.count/2)+1);
    }
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *MyCellIdentifier = @"MyCellIdentifier";

    UITableViewCell *cell = [self.tableView dequeueReusableCellWithIdentifier:MyCellIdentifier];

    if(cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault  reuseIdentifier:MyCellIdentifier];
    }


    NSInteger itemcount = _objects.count;
    NSLog(@"RowCount:%d",_objects.count/2);

    if(itemcount%2==0)
    {
        NSLog(@"Image Count is Even!");
        if(itemcount!=self.tagnumber)
        {

            RSSItem *object = _objects[self.tagnumber];
            UIImageView *imageView1 = [[UIImageView alloc]initWithFrame:CGRectMake(10, 4, 145, 95)];

            imageView1.tag = self.tagnumber;//1;
            NSLog(@"Tag number for Image1:%d", self.tagnumber);
            imageView1.image = [UIImage imageWithData:object.artimageData];
            [imageView1 setContentMode:UIViewContentModeScaleAspectFill];
            [imageView1 setClipsToBounds:YES];
            [cell.contentView addSubview:imageView1];

            UILabel *label1 = [[UILabel alloc] initWithFrame:CGRectMake(10, 100, 145, 30)];
            label1.tag = self.tagnumber;
            [label1 setFont:[UIFont fontWithName:@"AppleGothic" size:14.0]];
            [label1 setTextColor:[UIColor blackColor]];
            [label1 setContentMode:UIViewContentModeScaleToFill];
            [label1 setTextAlignment:NSTextAlignmentCenter];
            label1.text = @"Added 2days ago";;
            [label1 setNumberOfLines:1];
            [cell.contentView addSubview:label1];

            //Display next Image
            self.tagnumber++;
            object = _objects[self.tagnumber];
            UIImageView *imageView2= [[UIImageView alloc]initWithFrame:CGRectMake(165, 4, 145, 95)];

            imageView2.tag =self.tagnumber;
            NSLog(@"Tag number for Image2:%d", self.tagnumber);
            imageView2.image = [UIImage imageWithData:object.artimageData];
            [imageView2 setContentMode:UIViewContentModeScaleAspectFill];
            [imageView2 setClipsToBounds:YES];
            [cell.contentView addSubview:imageView2];

            UILabel *label2 = [[UILabel alloc] initWithFrame:CGRectMake(165, 100, 145, 30)];
            label2.tag = self.tagnumber;
            [label2 setFont:[UIFont fontWithName:@"AppleGothic" size:14.0]];
            [label2 setTextColor:[UIColor blackColor]];
            [label1 setContentMode:UIViewContentModeScaleToFill];
            [label2 setTextAlignment:NSTextAlignmentCenter];
            label2.text = @"Added 3days ago";;
            [label2 setNumberOfLines:1];
            [cell.contentView addSubview:label2];
            self.tagnumber++;
            [self dismissMegaAnnoyingPopup];
            return cell;

        }
    }
return cell;
}

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    //Hide Category view if not
    UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:indexPath];

    //[self performSegueWithIdentifier:@"ShowGalleryDetail" sender:cell];

    int rownumber = cell.tag;

    //Here i get 0 for rownnumber and even if i use indexpath.row**
    NSLog (@"Current Page for article is:%i",  rownumber);
}
4

1 に答える 1

0

In your cellForRowAtIndexPath method, you set the tag of a UIImageView or the tag of a UILabel.

In your didSelectRowAtIndexPath method, you get the tag of the cell.

セル内にある画像ビューまたはラベルのタグを取得するか、セルのタグを設定します。

于 2013-03-02T04:32:10.240 に答える