0

のフレームを変更する場合、UIView2つのオプションがあります。1つ目は、ビューの関数にCGRectパラメーターとしてaを渡すことです。setFrameもう1つは、にview.frame等しく設定することCGRectです。

1) [view setFrame:frame];
2) view.frame = frame;

setFrameの関数を使用するUIViewと、ビューがフレームを変更する必要があることを簡単に検出できます。ただし、プロパティ(view.frame)を変更するだけの場合、ビューはフレームが変更されたことをどのように検出しますか(ビューのフレームがすぐに更新されるため)。

4

2 に答える 2

4

view.frame = frameに等しい[view setFrame:frame]。dotメソッドを使用してプロパティを設定することは、を使用することと同じsetXXX:XXXです。を入力NSLogしてsetXXX:、を呼び出しobj.XXX = XXX;、コンソールをチェックして、NSLogが印刷されているかどうかを確認できます。

例:-

view.frame = frame; //If you set frame like this then

-(void)setFrame:(CGRect)frame
{
    //this will be call
}
于 2013-03-25T03:56:00.660 に答える
4

これは、Objective-C2.0に付属しているドット表記と呼ばれます。これらは主に、プロパティの取得と設定に使用されます。

プロパティを取得します:view.frame。プロパティを設定します:view.frame = frame

しかし、それらは次のように書くための単なる別の方法またはより簡単な方法(構文糖衣構文[view frame])です:および[view setFrame:frame]

それがすべてです、彼らはただ古いObjective-Cメッセージに翻訳されています。実際、メッセージに翻訳されているだけなので、次のようにしてみてください。

view.setNeedsDisplay;

setNeedsDisplayこれは実際のプロパティではありませんが、に変換されるため、機能することに注意してください[view setNeedsDisplay]。慣例により、ドット表記はプロパティの取得と設定にのみ使用されるため、のようなものを使用することはお勧めしませんview.setNeedsDisplay

于 2013-03-25T04:14:55.537 に答える