2012-03-14 6 views
0

私は風景モードでセルの背景ストレッチを正しくしようとしています。私はこのコードを書いた:cell.backgroundビューで画像を伸ばす

UIImage* cellBackGroundImage = [UIImage imageNamed:@"button_listing_default.png"]; 

cellBackGroundImage = [cellBackGroundImage stretchableImageWithLeftCapWidth:290 topCapHeight:76]; 

deselectedBackground = [[UIImageView alloc] initWithImage:cellBackGroundImage] ; 

[deselectedBackground setContentMode:UIViewContentModeScaleToFill]; 

cell.backgroundView = deselectedBackground; 

イメージのサイズは580x152です。セルのサイズは280x76です。

しかし、デバイスを横向きにすると、イメージの丸みのある角が縮尺されますが、そうではありません。

肖像出演:Portrait appearance http://xmages.net/storage/10/1/0/6/6/upload/456703d5.png

風景外観:Landscape appearance http://xmages.net/storage/10/1/0/d/0/upload/a99fb3a8.png

画像自体:The image itself http://xmages.net/storage/10/1/0/6/6/upload/e1895d8e.png

答えて

0

私は自分の問題を引き起こしたものを見つけました。実際それはイメージそのものです。ストレッチングとオートサイジングは、イメージが結果よりも小さい場合には適切に機能しますが、それが広い場合(私の場合と同じように)は小さくする必要があります。 私の問題を解決するために、ちょうど、より小さいイメージを使用しなければなりませんでした。

0

は、おそらくあなたのキャップ値が間違っていますか?

cellBackGroundImage = [cellBackGroundImage stretchableImageWithLeftCapWidth:290 topCapHeight:76]; 

なぜそれほど大きいのですか?あなたの丸いコーナーは、そのような大きな半径を持っていますか?それらが10ピクセルのようなものである場合は、stretchableImageWithLeftCapWidth: 10 topCapHeight: 10を使用してください。これらの値は、画像のどの部分がスケーリングされないかを定義します。

あなたはおそらくあなたの画像を表示できますか?

+0

私は試してみましたcellBackGroundImage = [cellBackGroundImage stretchableImageWithLeftCapWidth:10 topCapHeight:10];しかし、それは助けなかった –

+0

これはあなたが私が推測する網膜画像ですか?網膜ではエッジは約30ピクセルです。だから、あなたは15ポイントのcapvalueでうまくいくはずです。 (これらが網膜画像でない場合は、30ポイントを使用します)。それでも動作しない場合は、コードをさらに表示してください。そして、あなたにいくつかの答えを受け入れてください。 – calimarkus

+0

15と30は助けになりません –

関連する問題