2009-08-31 4 views
2

何らかの理由で、グループ化されたテーブルビューのセルの画像のデフォルト位置を変更できないようです。グループ化されたテーブルビューセル内の画像の位置を制御するにはどうすればよいですか?

cell.imageView.image = [UIImage imageWithContentsOfFile:MainImagePath]; 

私は画像の位置を調整するために、以下の実験をしてきたが、運がなかったしている:私はイメージをロードするために、次を使用しcellForRowAtIndexPathメソッドで

cell.contentMode = UIViewContentModeCenter; 

私はこれを運がうまくいきませんでした。

cell.imageView.contentMode = UIViewContentModeCenter; 

答えて

2

あなたはImageViewのつまりのフレームを使用できます: cell.imageView.frame = CGFrameMake(0.0、0.0、20.0、20.0);

又は

cell.imageView.center = CGPointMake(20.0、10.0)とImageViewの中心を設定します。

=セス

EDITED:ありがとうヨナは、私はそれを固定しました!

+0

ありがとうございました! CGMakePointではなくCGPointMakeを意味すると思います。 – Jonah

1

imageViewを移動するには、フレームを変更する必要があります。あなたがやっていることは、ビューのサイズ変更にどのように反応するかを再構成することだけです。希望の新しいセンターにcell.imageView.centerを設定してみてください。

あなたはtableView:willDisplayCell:forRowAtIndexPath:に注意する必要があります。これはセルを表示する直前に呼び出され、レイアウトを確立する最後の(そしてしばしば最良の)チャンスです。 tableView:cellForRowAtIndexPath:が呼び出され、その結果がキャッシュされます。したがって、実際に表示されるまでにレイアウトが間違っている可能性があります(たとえば、ビューのサイズ変更などによる)。だから私たちは一般的にtableView:willDisplayCell:forRowAtIndexPath:にレイアウトをしています。

+0

推奨するcell.imageView.centerの設定方法をお勧めしますか?下記のSethによって説明されているメソッドは、「引数に互換性のない型」エラーを引き起こします。 ありがとう! – Jonah

+0

おっと、セスのコードには小さなタイプミスがありました。ビルドすることはできましたが、まだ無視されているようです。 – Jonah

+0

これをtableView:willDisplayCell:forRowAtIndexPath:に設定していますコードを投稿してください。 –

2

UITableViewCellのデフォルトレイアウトは、[imageView] [textLabel] [accessoryView]です。あなたはそれを変更することはできません。

UITableViewCellでイメージを任意に配置する場合は、セルのcontentViewにUIImageViewを追加する必要があります。

+0

おそらく、レイアウトがやや魔法になっていたときにOS2.2を考えているのでしょうか? OS3は間違いなく基礎的なUIViewポインタへのアクセスを提供します。具体的には、それらを通常のビューとして扱い、それらを移動するなど、適宜変更することができます。例のこの質問に対する他の答えを確認してください。 –

+0

UITableViewCellはこれらのビューのレイアウトを担当しているので、その位置を変更することは私にとってはハックに思えます。それはうまくいくかもしれませんが、私はUITableViewCellがレイアウトをリセットしないことを保証するドキュメンテーションを見ていません。たとえば、編集状態と非編集状態の間で遷移するときです。一方、Appleのドキュメンテーションでは、セルのcontentViewにサブビューを追加することを推奨しています。その場合、あなたはそのレイアウトについて単独で責任があることを保証することができます。 – Darren

+0

レイアウト上の懸念は、アップルがなぜ私たちにtableView:willDisplayCell:forRowAtIndexPath:を与えて、サポートされている方法で、表示される前にレイアウトと更新を行う機会を与えているかです。 WWDCビデオへのアクセス権がある場合は、「iPhoneのテーブルビューを完璧にする」にこのトピックについての良い議論がありました。 –

関連する問題