2013-04-14 54 views
5

這是一個簡單的問題,但棘手的問題需要解決。防止按鈕被同時按下

我有兩個執行相同功能的按鈕。

我已經爲按鈕設置了不同的觸摸事件。雖然這有幫助,但仍可以同時按下它們。在一個緩慢的連接上,它會更容易。

[vote1Btn addTarget:self action:@selector(voteUp:) forControlEvents:UIControlEventTouchUpInside]; 
[vote2Btn addTarget:self action:@selector(voteUp:) forControlEvents:UIControlEventTouchDown]; 
+3

此按鈕的功能是什麼,它爲什麼綁定到「慢速連接」? – J2theC

+1

聽起來像你可能正在主線程上進行網絡訪問 - 這很糟糕。 – rmaddy

+2

爲什麼你使用第二個按鈕?如果你在裏面使用了,你應該沒問題。 – Rob

回答

21

將兩個按鈕的exclusiveTouch屬性設置爲YES。

如果這還不夠,讓每個按鈕在其操作開始時調用共享應用程序對象的beginIgnoringInteractionEvents,並在操作結束時調用endIgnoringInteractionEvents

+0

如果我能把這個答案投給更多,我會 - 節省多少時間! – chrysAllwood

+0

似乎exclusiveton不適用於iOS9? –

+0

像iOS10中的魅力一樣工作! – ronatory

0
for(UIView* v in self.view.subviews) 
{ 
    if([v isKindOfClass:[UIButton class]]) 
    { 
     UIButton* btn = (UIButton*)v; 
     [yourButton setExclusiveTouch:YES]; 
    } 
} 

這將工作!