我该怎么做: 我有5个激励图像。如果我的bool变量为真,我需要显示每个图像。
我在做什么:
BOOL var1 = true;
BOOL var2 = true;
BOOL var3 = false;
BOOL var4 = true;
BOOL var5 = false;
if(var1)
{
cell.incentive1.hidden = false;
}
if(var2)
{
cell.incentive2.hidden = false;
}
if(var3)
{
cell.incentive3.hidden = false;
}
if(var4)
{
cell.incentive4.hidden = false;
}
if(var5)
{
cell.incentive5.hidden = false;
}
这是有效的.. 我有一个跟进问题, 我将如何能够显示var4的uiimageview var2的uiimageview。我需要动态创建uiimageview。当应用程序检测到真实的bool变量时,将没有间隙。
感谢..
答案 0 :(得分:2)
你不应该使用if ... else,因为所有图像都是独立的。你应该:
if(var1)
{
cell.incentive1.hidden = false;
}
if(var2)
{
cell.incentive2.hidden = false;
}
if(var3)
{
cell.incentive3.hidden = false;
}
if(var4)
{
cell.incentive4.hidden = false;
}
if(var5)
{
cell.incentive5.hidden = false;
}
答案 1 :(得分:2)
当您使用if..else if
条件时,如果任何一个条件通过,则不会评估其余条件。
因此,要解决此问题,您需要将所有内容更改为if
条件。
但我建议使用以下是一种更好的方法(不需要if else条件):
cell.incentive1.hidden = !var1;
cell.incentive2.hidden = !var2;
cell.incentive3.hidden = !var3;
cell.incentive4.hidden = !var4;
cell.incentive5.hidden = !var5;
答案 2 :(得分:1)
你已经有了if..else if
个链接else
语句。这意味着一旦满足其中一个条件,就完成整个评估并跳转到下一位代码。在任何地方删除{{1}},以便单独评估每个条件。
答案 3 :(得分:1)
试试这个。
cell.incentive1.hidden = (var1 == true)?true:false;
cell.incentive2.hidden = (var2 == true)?true:false;
cell.incentive3.hidden = (var3 == true)?true:false;
cell.incentive4.hidden = (var4 == true)?true:false;
cell.incentive5.hidden = (var5 == true)?true:false;
答案 4 :(得分:-1)
如果给定代码,如果var 1为真,那么它将转到第一个块,否则它将转到下一个。
以及隐藏和显示图像的最佳方法,您可以为隐藏设置alpha 0,为显示设置1。