1

次のレイアウトから達成するための最良の方法/正しい方法を知りたいですか? 静的セルを持つ UITableView の UITableViewCell の外側に UIImageView を配置したいと考えています。

私が達成しようとしているもののスクリーンショット

次のコードを使用して、セクション1のセルの UITableViewCell をサブクラス化することにより、次のことを行いました

- (void)setFrame:(CGRect)frame {
    frame.size.width -= 125.0;
    [super setFrame:frame];
}

UITableViewController の viewDidLoad に UIImageView を追加し、カスタム UITableViewCell の幅に合わせて配置します。

この種の作品ですが、回転を処理する方法がわかりません。また、これまでに行ったことが正しい方法であるかどうかもわかりません。

4

2 に答える 2

0

それを行うさまざまな方法があります。1つは、写真2に示したようにテーブルビューの幅を小さく設定することです。カスタムテーブルビューセルを使用し、必要なセルに画像を追加して、セルデータと画像が表示されるようにします。カスタムセルがより良い解決策になると思います。私が答えたものと同じことを尋ねているかどうか教えてください。いいえの場合は、答えを確認してください。

于 2012-05-02T19:02:14.610 に答える
0

私はフォローを使用して、私が望むものを作成することができました。

最初の 3 つの UITableViewCells をサブクラス化し、画像のサイズを考慮してフレーム サイズを設定しました。

- (void)setFrame:(CGRect)frame {
float cellWidth = (frame.size.width - 345);
frame.size.width = cellWidth;

[super setFrame:frame];

}

次に、UITableViewController の viewDidLoad で、テーブルビューの最初の静的セルを IBOutlet (「firstCell」) として使用して、UIImageView を作成して配置します。次に、回転を整理する autoResizingMask を設定し、最後に UIImageView をビューに追加します。

//Create and position the image view
UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake((firstCell.frame.size.width), (firstCell.frame.origin.y + 70), 300, 137)];

// Add border and round corners of image view to make style look a little like tableviewcells
[imageView.layer setBorderColor:[UIColor colorWithWhite:0 alpha:0.5].CGColor];
[imageView.layer setBorderWidth:2.0];
[imageView.layer setCornerRadius:5.0];
[imageView setClipsToBounds:YES];

//Set the image in the image view
UIImage *image = [UIImage imageNamed:@"defaultPicture.png"];
imageView.image = image;

//Set resizing of image view for when view is rotated
imageView.contentMode = UIViewContentModeRedraw;
imageView.autoresizingMask = UIViewContentModeScaleAspectFit;

//Add tap gesture for imageview to initiate taking picture.
imageView.userInteractionEnabled = YES;
UITapGestureRecognizer *imageViewTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(takePicture:)];
[imageView addGestureRecognizer:imageViewTap];

//Add image view to view
[self.view addSubview:imageView];

風景 肖像画

これは完全にはテストされておらず、優れた実装ではないと確信していますが、私が求めている効果の出発点です。良い方法をご存知でしたら回答お願いします。

注: 上記のコードは iPad 上の私のアプリ用に書かれていますが、スクリーンショットは iPhone で行ったテストからのものです

于 2012-05-04T08:50:35.503 に答える