在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/iOS/ iOS 控件的顯示與隱藏兩種寫法,哪個才算是正確寫法?

iOS 控件的顯示與隱藏兩種寫法,哪個才算是正確寫法?

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{
    
}

}
但是實際你們在寫項目的時候肯定都遇到過情況比這多好多的時候,比如用戶是否登錄,是夠關(guān)注,是否購買,以及狀態(tài)A的時候可能需要隱藏一些控件,狀態(tài)B的時候需要隱藏另外一些控件,狀態(tài)C,D等等更有甚者,需要第一個接口里邊某個字段和第二個接口某個字段綜合起來判斷控件是否隱藏,所有種種的原因?qū)е潞髞砦易约憾疾恢喇?dāng)初的邏輯應(yīng)該是什么樣子。

所以我就想用下邊這種寫法:
-(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;

}
每個狀態(tài)我都記錄一個變量,你有10種情況,我就記錄10個變量,但是我沒見過有人這么寫過

所以我想請教大神們:到底怎么寫才是對的,對于這種條件特別多,而且條件里邊套條件,應(yīng)該怎么去寫,大家可以在這個例子上任意的更改需求,不要局限這個例子,歡迎大家踴躍討論

回答
編輯回答
命于你

我以前寫的時候是先把所有的隱藏,符合條件才顯示。。。

2017年11月19日 11:03
編輯回答
抱緊我

按你的需求,直接寫就可以了.

self.aLab.hidden = z != 7
self.bLab.hidden = y == 6
self.cLab.hidden = false 
2017年11月3日 02:08
編輯回答
北城荒

推薦使用位運算。iOS庫中很多是用位運算去做的

2017年4月18日 05:46
編輯回答
柒槿年

這個還是具體場景具體分析吧

假設(shè) x,y,z等變量遠(yuǎn)比A,B,C等控件多,那么就是第一種寫法,反之是第二種;
而且即便是第一種寫法,也不是你寫的這種,而是:

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

另外一種是像樓上所說位運算的思路,把幾個屬性抽成一個場景,假設(shè):
吃了 = 買 + 吃
吃飽了 = 買 + 吃 + 很多
可以把很多屬性總結(jié)為幾個場景,在該場景下視圖應(yīng)該是什么樣子。。

2018年4月18日 05:18