0

代数方程式がごちゃごちゃになったゲームを作ろうとしています。方程式の各コンポーネントにアウトレットを割り当てました。たとえば、方程式が次の場合:

x2 + y = 2(a+b)

次に、x2 (x の 2 乗)、+、y、=、および 2(a+b) はすべて独自のアウトレットになります。しかし、方程式はごちゃごちゃになるので、ユーザーにラベル アウトレットを正しい順序に移動してもらいたいと思います。touchesMoved を有効にしましたが、問題は方程式が正しい順序であるかどうかを確認することです。コードをボタン アクションにラップしますIBActionが、テキストを分析するにはどうすればよいでしょうか。各ラベル間のオフセットを確認しますか? これを行う簡単な方法/APIはありますか? ありがとう!

4

1 に答える 1

1

ラベルがxLabelplusLabelyLabelequalsLabel、およびabLabelであると仮定すると、次のようにすることができます。

NSUInteger xLeftBorder = CGRectGetMinX(xLabel.frame);
NSUInteger plusLeftBorder = CGRectGetMinX(plusLabel.frame);
NSUInteger yLeftBorder = CGRectGetMinX(yLabel.frame);
NSUInteger equalsLeftBorder = CGRectGetMinX(equalsLabel.frame);
NSUInteger abLeftBorder = CGRectGetMinX(abLabel.frame);

if(xLeftBorder < plusLeftBorder && plusLeftBorder < yLeftBorder && yLeftBorder < equalsLeftBorder && equalsLeftBorder < abLeftBorder){

    //Correct!
}

else{
    //Incorrect
}

これはちょっと不器用ですが、うまくいきます。それを行うためのさらに良い方法は、これを関数に入れ、各パラメーターをチェックするラベルにすることです。例えば:

bool isCorrect = [self checkIf:xLabel isLessThan: plusLabel isLessThan: yLabel isLessThan:equalsLabel isLessThan:abLabel];

これは、作成した関数が bool を返すことを前提としています。

これが役に立ったことを願っています!

于 2012-06-09T01:56:33.620 に答える