我有一个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语句而不必将所有代码放在每个语句中的正确方法是什么?请说如果我不清楚,我可以提供更多细节。感谢。
答案 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;
}