检查UILabels彼此之间的距离
我正在尝试做一个混乱的代数方程。 我为这个等式的每个组成部分分配了一个出口。 例如,如果方程是:
x2 + y = 2(a + b)
那么x2(x平方),+,y,=和2(a + b)都是它自己的出口。 但是这个方程将会混乱起来,我希望用户把标签出口移动到正确的顺序。 我已启用touchesMoved,但我的问题在于检查方程是否在正确的顺序。 我会将代码包装到IBAction
button操作中,但是如何分析文本? 我会检查每个标签之间的偏移吗? 有一个简单的方法/ API来做到这一点? 谢谢!
假设你的标签叫做xLabel
, plusLabel
, yLabel
, equalsLabel
和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];
这是假设你写的函数返回一个布尔值。
希望这有助于!