我正在计算高度和宽度的图像值,并使用if条件检查imagsize是否可用。如果没有,那么我正在为UIImageView大小分配一些值。但是当我检查imagesize in 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)];
}
答案 0 :(得分:1)
稍微退一步思考你在这里尝试做些什么。你想检查什么条件?在什么情况下大小会出乎意料?
CGSize
是一个结构,而不是一个对象。这意味着,与对象不同,没有办法将其表示为零(或未初始化)对象。在你的情况下,看起来你真正想知道的是尺寸是否有效。假设有效大小不为零,您可以检查大小是否等于零大小({0,0})。您可以使用CGSizeEqualToSize
函数执行此操作,该函数返回表示两种大小相等的布尔值。
答案 1 :(得分:0)
CGSize不能成为bool值。您已将CGSize与另一个CGSize进行比较。
您可以使用CGSizeEqualToSize:
if(CGSizeEqualToSize(imageSize, TheSizeYouWantToCompare))
{
}
答案 2 :(得分: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)];
}
试试这可能会有所帮助...