1

私はこれを理解しようと数日間試みてきました-おそらく見逃したのは簡単なことだと思いますが、iOSに慣れていないので、どこかで何かを見逃したと思います.

XCodeに画像ビューの配列があり、各画像ビューにフレームが割り当てられています.うまくいかないように見えるのは、配列から各オブジェクトの各フレームをif else ifステートメントで比較したい..システムにこのようなことをさせる方法がわかりません...

インデックス 0 の配列オブジェクトのフレームが (0,0) (90,90) の場合は何かを実行し、(90,90) (90,90) の場合は代わりにこれを実行します。それ以外の場合はこれを実行します...

if else ステートメントがどのように機能するかは知っています。主な質問は、比較のために配列内のオブジェクトのフレーム部分にどのようにアクセスするかということだと思います。

私は混乱しています。助けてください。それは有り難いです。:)

4

3 に答える 3

1

まあ、私は他の答えを見ましたが、OPはビュー配列をループする方法を知りたがっていたと思います。したがって、これを行う方法は次のとおりです。

for(UIImageView *imgView in yourViewsArray)
{
   if([imgView isMemberOfClass:[UIImageView class]])
   {
       //insert IF statements here like the other answers showed.
   }
}
于 2012-09-29T12:32:04.513 に答える
0

関数を使用しCGRectContainsRect(CGRect rectReference, CGRect rectToCompareTo)ます。

rectToCompareToが中にある場合はYESを返しrectReferenceます。

より類似した関数はここにあります: https ://developer.apple.com/library/ios/#documentation/graphicsimaging/reference/CGGeometry/Reference/reference.html

于 2012-09-29T12:24:11.897 に答える
0

CGRectの属性ごとに個別に比較する必要があると思います。

CGRect aRect = [[array objectAtIndex:0] frame];
if (aRect.origin.x == 0 && aRect.origin.y == 0 && aRect.size.width == 90 && aRect.size.height == 90){
    //do something
}
else if (aRect.origin.x == 90 && aRect.origin.y == 90 && aRect.size.width == 90 && aRect.size.height == 90){
    //do something else 
}

条件文に関係しているのはorigin.xだけである可能性があります。そうすれば、単純に次のことができます。

CGRect aRect = [[array objectAtIndex:0] frame];
if (aRect.origin.x == 0){
    //do something
}
else if (aRect.origin.x == 90){
    //do something else 
}
于 2012-09-29T12:24:34.640 に答える