我正在尝试使用取决于变量对象的条件创建if语句。我怎么能这样做呢?
以下是我要做的事情的要点......
if ([gestureRecognizer state] == UIGestureRecognizerStateEnded)
{
if (somecondition)
{
//Do stuff
}
else if (CGRectIntersectsRect(currentImage.frame, **anyOfTheImagesInMyArray**.frame))
{
//Do stuff
}
}
如何在测试true或false之前获取else if if条件来检查多个UIView帧?
更新代码:
在这种情况下我该怎么做?
if ([gestureRecognizer state] == UIGestureRecognizerStateEnded)
{
if (CGRectIntersectsRect(currentImage.frame, **anyOfTheImagesInMyArray_1**.frame))
{
//Do stuff
}
else if (CGRectIntersectsRect(currentImage.frame, **anyOfTheImagesInMyArray_2**.frame))
{
if (condition) {
//do stuff
}
else if (condition){
//do something else
}
}
else if (CGRectIntersectsRect(currentImage.frame, **anyOfTheImagesInMyArray_3**.frame))
{
if (condition) {
//do stuff
}
else if (condition){
//do something else
}
}
else if (CGRectIntersectsRect(currentImage.frame, **anyOfTheImagesInMyArray_4**.frame))
{
if (condition) {
//do stuff
}
else if (condition){
//do something else
}
}
}
答案 0 :(得分:1)
不确定我的问题是否正确,但是如果您想对阵列中的每个图像执行某些任务,它应该看起来像像这样:
if ([gestureRecognizer state] == UIGestureRecognizerStateEnded)
{
// imagesArray is an NSArray holding UIImages
for (UIImage *image in imagesArray) {
if (CGRectIntersectsRect(currentImage.frame, image.frame)) {
if (someCondition) {
// do stuff
} else {
// do something else
}
}
}
}
答案 1 :(得分:1)
据我所知,没有办法简洁地用现有的语法来做你想做的事情。相反,请考虑对NSArray
进行分类以添加-containsIntersectingRect:(CGRect)rect
等方法,该方法循环遍历NSValue
个对象数组 - 数组只能包含对象,因此您必须插入{{1}进入包含CGRect
个对象的数组 - 并查找NSValue
的至少一个正例。
这至少会使语法更多地被收集并抽象为一系列条件的单一方法。