1

テーブル ビューの右隅に UIImage を設定する方法。テーブルビューを使用してiPadアプリを作成し、連絡先のリストを表示しています。連絡先テーブルビューをクリックすると、右側の詳細が表示されます...ここでは、テーブルビューで選択されている1つの画像を配置したいと思います...

誰でも私にこれについての提案をしてください

ありがとう

ここで私のコードを参照してください

-(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
               ![enter image description here][1]

         UIImageView *imv = [[UIImageView alloc]initWithFrame:CGRectMake(347, 0.5, 14, 48)];
         imv.image=[UIImage imageNamed:@"activeBg.png"];
         [cell.selectedBackgroundView addSubview:imv];


}

期待される出力:

ここに画像の説明を入力

私の出力:

ここに画像の説明を入力

使用イメージ:

ここに画像の説明を入力

x 値を変更した後、次の出力を参照してください。

ここに画像の説明を入力

4

4 に答える 4

1

メソッドに両方の行を記述しviewDidLoad:ます。

arrowImage = [UIImage imageNamed:@"image"];
[tableView setClipsToBounds:NO];

今あなたがしなければならないことは次のdidSelectRowAtIndexPath:とおりです:

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    [self addArrowToIndexPath:indexPath];
}

そして、ここでメソッド定義:

-(void)addArrowToIndexPath:(NSIndexPath *)indexPath
{
    CGRect rect = [tableView rectForRowAtIndexPath:indexPath];

    if (arrowView)
    {
        [arrowView removeFromSuperview];
        arrowView = nil;
    }

    // arrowView is an UIImageView declared globally
    arrowView  = [[UIImageView alloc] initWithImage:arrowImage];
    rect.origin.x = CGRectGetMaxX(rect);
    rect.size = arrowImage.size;
    [arrowView setFrame:rect];
    [tableView addSubview:arrowView];
}

注: また、行の高さ = arrowImage.size.height を設定します。つまり、セルの高さに合わせることができます。

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    return arrowImage.size.height;
}

サンプルを直接ダウンロードできます。

于 2013-08-07T09:21:49.250 に答える
1

まず第一に、フロート座標はぼやけて見える可能性があるため注意してください!

UITableViewCell の幅は? セルのサイズに応じて座標を計算する必要があります。

-(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
     CGRect rectImageView = CGRectMake(cell.frame.size.width - 14, 1, 14, 48); // maybe even y and height is calculateable
     UIImageView *imv = [[UIImageView alloc]initWithFrame:rectImageView];
     imv.image=[UIImage imageNamed:@"activeBg.png"];
     [cell.selectedBackgroundView addSubview:imv];
     [cell setClipsToBounds:NO]; // do not clip subviews


}

さらに、setClipsToBounds が重要です。記憶が正しければ、YES がデフォルトです...

于 2013-08-07T08:59:31.687 に答える
0

プロパティで試す

[view setClipsToBounds:NO];

この NO を設定する必要があるかどうかはわかりませんが、self.view、UITableView、または Cell. の設定を試してください。

于 2013-08-07T08:59:02.960 に答える