检查UILabels彼此之间的距离

我正在尝试做一个混乱的代数方程。 我为这个等式的每个组成部分分配了一个出口。 例如,如果方程是:

x2 + y = 2(a + b)

那么x2(x平方),+,y,=和2(a + b)都是它自己的出口。 但是这个方程将会混乱起来,我希望用户把标签出口移动到正确的顺序。 我已启用touchesMoved,但我的问题在于检查方程是否在正确的顺序。 我会将代码包装到IBActionbutton操作中,但是如何分析文本? 我会检查每个标签之间的偏移吗? 有一个简单的方法/ API来做到这一点? 谢谢!

假设你的标签叫做xLabelplusLabelyLabelequalsLabelabLabel ,你可以这样做:

 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]; 

这是假设你写的函数返回一个布尔值。

希望这有助于!