11

問題の解決策が見つからないので、専門家が助けてくれることを願っています。

セルがたくさんあるテーブルビューがあります。セルごとに、角が丸い画像ビューがあります。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UIImageView *exampleView;

...
exampleView.layer.cornerRadius =   5.f;
exampleView.clipsToBounds = YES;   
[cell.contentView addSubview:exampleView];
...

}

スクロール パフォーマンスの問題が大きくない - cornerRadius と clipsToBounds = YES を使用する場合、代替ソリューションはありますか? (角丸の画像表示には写真が含まれており、角が設定されていない場合。スクロールはスムーズです。問題はここにあります)

編集#1:他の投稿をすでに読んでいることを明確にするために:

...
exampleView.frame = CGRectMake(5.0f,size.height-15.0f,30.0f,30.0f);
exampleView.layer.backgroundColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:0.5].CGColor;
exampleView.layer.cornerRadius = 5.0f;
exampleView.layer.borderWidth       =   0.3f;
exampleView.layer.borderColor       =   [UIColor blackColor].CGColor;
exampleView.layer.masksToBounds = NO;
exampleView.layer.shouldRasterize = YES;
//exampleView.clipsToBounds = NO;
[exampleView setImage: myImage ];

編集 #2: 丸みを帯びた角のビューに myImage が重なり合っているようです。画像を角の丸いビューに正しく合わせるにはどうすればよいですか? または私は何かを逃していますか?

4

1 に答える 1

10

次の行を変更するだけです

  exampleView.layer.masksToBounds = YES;

imageView の角を丸くする。以下の画像を参照してください。

テーブルビューのスクロールは、ビュー合成の問題です。上記の提案に加えて、これは確かに役立ちます - UITableViewCell の contentView プロパティの opaque プロパティと backgroundView プロパティを設定します。行け:

  [cell.contentView setOpaque:YES];
  [cell.backgroundView setOpaque:YES];

これにより、可能な限り早い段階でビューの合成作業を減らすことができます。

スクロール時に画像を処理するために非同期処理を使用する必要がある追加の高度な手法があります。上記の手法が機能する場合、それらはやり過ぎかもしれません。

レイヤーの maskToBounds が yes に設定された UIImageView レイヤーの maskToBounds が No に設定された UIImageView

于 2012-09-02T16:13:13.510 に答える