账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    iOS 控件的显示与隐藏两种写法,哪个才算是正确写法?
    68
    0

    1,下面是一个初级程序员都写过的语句;比如x,y,z三个变量,分别控制A,B,C三个控件的显示与隐藏

    x=5 的时候 {A隐藏,B不隐藏,C不隐藏}
    y=6 的时候 {A隐藏,B隐藏,C不隐藏};
    z=7 的时候 {A不隐藏,B不隐藏,C不隐藏}
    正常写法:
    -(void)initData
    {

    if (x == 5) {
        self.aLab.hidden    = YES;
        self.bLab.hidden    = NO;
        self.cLab.hidden    = NO;
    }else if (y == 6){
        self.aLab.hidden    = YES;
        self.bLab.hidden    = NO;
        self.cLab.hidden    = YES;
    }else if (z == 7){
        self.aLab.hidden    = NO;
        self.bLab.hidden    = NO;
        self.cLab.hidden    = YES;
    }else{
        
    }

    }
    但是实际你们在写项目的时候肯定都遇到过情况比这多好多的时候,比如用户是否登录,是够关注,是否购买,以及状态A的时候可能需要隐藏一些控件,状态B的时候需要隐藏另外一些控件,状态C,D等等更有甚者,需要第一个接口里边某个字段和第二个接口某个字段综合起来判断控件是否隐藏,所有种种的原因导致后来我自己都不知道当初的逻辑应该是什么样子。

    所以我就想用下边这种写法:
    -(void)setALabelStatus
    {

    self.aLab.hidden    = (x == 5 || y == 6) ? YES : NO;

    }
    -(void)setBLabelStatus
    {

    self.bLab.hidden   = (x == 5 || y == 6 || z == 7) ? NO : YES;

    }

    -(void)setCLabelStatus
    {

    self.cLab.hidden    = (x == 6 || z == 7) ? YES : NO;

    }
    每个状态我都记录一个变量,你有10种情况,我就记录10个变量,但是我没见过有人这么写过

    所以我想请教大神们:到底怎么写才是对的,对于这种条件特别多,而且条件里边套条件,应该怎么去写,大家可以在这个例子上任意的更改需求,不要局限这个例子,欢迎大家踊跃讨论

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 絟昰、涐の錯 普通会员 1楼

      在iOS中,显示和隐藏控件的正确写法应该是:

      显示:UIControl.hidden = YES;

      隐藏:UIControl.hidden = NO;

      在这个例子中,hidden属性用于设置一个控制是否可见。如果hidden属性设置为YES,那么这个控制就会显示;如果hidden属性设置为NO,那么这个控制就会隐藏。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部