0

我正在计算高度和宽度的图像值,并使用 if 条件检查 imagsize 是否可用。如果不是,那么我正在为 UIImageView 大小分配一些值。但是当我在 if 条件下检查图像大小时,我得到了这个错误 value of type CGSize is not contextually convertible to bool

CGSize imageSize = CGSizeMake(350 * widthRatio, height);

      if(imageSize){

            mmageView=[[UIImageView alloc]init];

            CGRect frame = mmageView.frame; frame.size = imageSize; mmageView.frame = frame;

        }else{

              mmageView=[[UIImageView alloc]initWithFrame:CGRectMake(50,50,150,150)];


        }
4

3 回答 3

1

退后一步,想想你在这里想要做什么。你想检查什么条件?在什么情况下大小会出乎意料?

CGSize是一个结构,而不是一个对象。这意味着,与对象不同,无法将其表示为 nil(或未初始化)对象。不过,在您的情况下,您似乎真正想知道的是大小是否有效。假设有效大小不为零,您可以检查大小是否等于零大小 ({0, 0})。您可以使用该CGSizeEqualToSize函数执行此操作,该函数返回一个表示两个大小相等的布尔值。

于 2014-07-28T07:17:42.737 回答
0

CGSize 不能是布尔值。您已经将一个 CGSize 与另一个 CGSize 进行了比较。

您可以使用CGSizeEqualToSize:

if(CGSizeEqualToSize(imageSize, TheSizeYouWantToCompare))
{

}
于 2014-07-28T07:11:28.173 回答
0

当您的代码以这种方式检查时

if(imageSize.height != 0 && imageSize.width != 0){

   mmageView=[[UIImageView alloc]init];

   CGRect frame = mmageView.frame; frame.size = imageSize; mmageView.frame = frame;

}else{
     mmageView=[[UIImageView alloc]initWithFrame:CGRectMake(50,50,150,150)];
}
于 2014-07-28T07:14:05.337 回答