2011-05-12 9 views
1

UIフレームのプロパティを直接編集しても機能しないようです。モノトックフレームの寸法を直接設定することはできませんか?

すなわち

scrollView.ContentSize.Width = 100; 

は動作しませんが、

RectangleF scrollFrame = ScrollView.Frame; 
scrollFrame.Width = width * pageCount; 
ScrollView.ContentSize = scrollFrame.Size; 

はありません!どうしてこれなの? Monotouchは秘密のプログラミングスタイルに対して を保護するはずですか?

+0

これは、iOSではなくMonotouchと何か関係があると感じています... – Luke

答えて

4

これは基本的なC#の動作です。

ContentSizeプロパティは、構造体(=値型)であり、クラス(=参照型)ではないSizeFです。

あなたがコピーしたオブジェクトのプロパティに値を設定しているため、動作しません

scrollView.ContentSize.Width = 100; 
を呼び出します。

RectangleFも構造体ですが、あなたが実際のオブジェクトに値を設定しているため

scrollFrame.Width = width * pageCount; 

作品を呼び出します。

同様に、

ScrollView.ContentSize = scrollFrame.Size; 

は、コピーを作成しますが、 '=' の後に新しいオブジェクトを設定し、正常に動作します。

+0

こちらもご覧くださいhttp://stackoverflow.com/questions/2425213/cocoa-objective-c-property-c-structure-assign -fails –

関連する問題