2009-04-22 6 views
0

私はこのUIImageViesの境界矩形の幅を設定できないのはなぜですか?

myUIImageView.bounds.size.width = 50.0f; 

が、私はエラーを取得しようとすると:割り当て

に無効な左辺値をしかし、私はこれを行うとき、それがコンパイルされます。それは多くの余分な作業ですが、

CGRect newRect = myUIImageView.bounds; 
newRect.size.width = 50.0f; 
myUIImageView.bounds = newRect; 

コンパイルしても何も起こりません。私のUIImageViewのフレームは300ワイドで、正確に300ピクセル幅の画像で埋められています。完璧にフィットします。だから、私はそのイメージを伸ばしたいと思っていました。(楽しみのためだけに)、境界の矩形の幅を小さくしなければなりません。 50.0と言うことができます。しかし残念なことに、イメージは期待どおりに傷つくことはありません。ただ何も起こりません。このコードの2行下に、イメージを移動します。それは動作します。

答えて

0

プロパティのサイズと文字列が読み取り専用です。

境界は読み取り専用ではありません。

レッツは、あなたが境界を変更することができる理由ですが、サイズ

+0

感謝を使用して、その新しい境界のビューを通知しなければならない幅を変更するために

。エラーメッセージの「Ivalue」は「割り当ての無効な左辺値」とは何ですか? – Thanks

+0

左辺値は '左値' '='の左側にある表現式 – oxigen

0

これは(私のために)働きを変更することはできません。

CGRect frame = myUIImageView.frame; 
frame.size.width = 50.0; 
myUIImageView.frame = frame; 

それを試してみてください..

+0

そうです。しかし、私はフレームを変更したくありません。私は境界を変更したい。 – Thanks

+0

それで私は違いが何であるかわかりません。 – Jake

+0

大きな違いがあります。 http://developer.apple.com/documentation/Cocoa/Conceptual/CocoaViewsGuide/Coordinates/Coordinates.html – Thanks

2

-[UIView bounds]ビューの境界のX、Y、幅と高さの値を含む新しいCGRectを返します。この新しいCGRectの値を変更しても効果はなく、GCCはこれを実現します。あなたは、ビューから境界を取得どこかに保管し、保存されたCGRectに幅の値を変更し、-[UIView setBounds:]

+0

をご覧くださいありがとう!私はそれを試みたが、これも私のUIImageViewには影響しません。私のイメージを引き伸ばすために設定しなければならない特別なコンテンツモードがありますか? – Thanks

+0

UIImageViewは画像をまったく操作しません。境界内にそのまま描画します。ビューを拡大縮小するには、単に[view setTransform:CGAffineTransformMakeScale(0.5f、1.0f)]を呼び出します。 – rpetrich

関連する問題