当bool变量为true时显示图像

时间:2015-02-09 10:37:52

标签: ios objective-c image

我该怎么做: 我有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变量时,将没有间隙。

感谢..

5 个答案:

答案 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。