2

こんにちは、私は uitableviewcell を持っています。セルの ios で提供されているデフォルトの uitableview セルを使用しています。

[cell.imageView setImageWithURL:[NSURL URLWithString:movie.show_image_url] placeholderImage:[UIImage imageNamed:@"placeholder.png"]];

最初はすべて正常にロードされますが、シミュレーターで行を選択すると、セル内の要素 (シェベロンを除く) が左にシフトし、イメージビューの幅が短くなります。

imageview をアプリに保存されている静止画像、たとえば placeholder.png に置き換えると、この問題が発生しない理由がわかりません。

誰かが助けることができますか?

4

1 に答える 1

8

私もこの問題を抱えていましたが、UITableViewCell クラスで -layoutSubViews をオーバーライドする (まだ行われていない場合は UITableViewCell をサブクラス化する) という非常に簡単な解決策を見つけました。

詳細については、SDWebImage 固定幅セル イメージを参照してください ( SDWebImage github repoを熟読しているときに見つかりました)。

この記事で提案されている手法には、IB で利用可能な標準の UITableViewCell で UIImageView と 2 つの UILabel のジオメトリを制御することが含まれます。私はカスタム セルを使用していますが、UIImageView のレイアウト方法をオーバーライドするだけで問題を解決できました。

- (void)layoutSubviews
{
    [super layoutSubviews];
    self.thumbnailView.frame = CGRectMake(
                                          0,
                                          0,
                                          THUMBNAIL_WIDTH,
                                          THUMBNAIL_HEIGHT
                                          );

}

(THUMBNAIL_WIDTH と THUMBNAIL_HEIGHT は単なるマクロであり、どちらも 71 に設定されていることに注意してください)。

それが役立つことを願っています。

于 2012-12-13T06:11:04.793 に答える