在if语句中声明CGRect

时间:2011-04-06 02:53:25

标签: iphone objective-c

我有一个if语句,用于检查数组是否包含某个项目:

    if ([[subTitles objectAtIndex:indexPath.row] isEqualToString:@""]) {

并在其中包含此代码:

CGRect CellFrame = CGRectMake(0, 0, 300, 44);

然后我有一个带有相同内容的else语句,但显然具有不同的值。

看起来像这一切:

if ([[subTitles objectAtIndex:indexPath.row] isEqualToString:@""]) {
    CGRect CellFrame = CGRectMake(0, 0, 300, 44);
} else {
    CGRect CellFrame = CGRectMake(0, 0, 300, 60);
}

稍后在我的代码中,我正在尝试使用CellFrame,但它说它未声明。制作CGRect if / else语句而不必将所有代码放在每个语句中的正确方法是什么?请说如果我不清楚,我可以提供更多细节。感谢。

1 个答案:

答案 0 :(得分:6)

您需要在if / else语句之外定义变量。当你把它放在里面时,它只对该语句中的代码可见,并在退出时被销毁。此外,由于只有高度不同,您可以在if语句之外指定矩形的其他部分。

CGRect CellFrame;
CellFrame.origin = CGPointMake(0,0);
CellFrame.size.width = 300;
if([[subTitles objectAtIndex:indexPath.row] isEqualToString:@""]) {
    CellFrame.size.height = 44;
} else {
    CellFrame.size.height = 60;
}