我想在按鈕突出顯示時執行操作,並在突出顯示狀態時執行其他操作。有什麼建議?按鈕離開突出顯示狀態時的調用方法
回答
你可以使用志願
[button addObserver:self forKeyPath:@"highlighted" options:NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld context:NULL];
然後
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{
if ([@"highlighted" isEqualToString:keyPath]) {
NSNumber *new = [change objectForKey:@"new"];
NSNumber *old = [change objectForKey:@"old"];
if (old && [new isEqualToNumber:old]) {
NSLog(@"Highlight state has not changed");
} else {
NSLog(@"Highlight state has changed to %d", [object isHighlighted]);
}
}
}
你只真正關心的變化,這將被稱爲每次例如狀態變化如果你選擇移動,然後用你的手指仍然向下拖動到按鈕之外
是否這樣?
self.testButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[self.testButton addTarget:self action:@selector(methodOne) forControlEvents:UIControlEventTouchDown];
[self.testButton addTarget:self action:@selector(methodTwo) forControlEvents:UIControlEventTouchUpInside];
沒有這不起作用,因爲按鈕離開高亮狀態時,它執行TouchUpInside動作之前(至少我是這麼認爲的測試後,猜測... ) – arnoapp 2012-04-01 21:39:11
這不是那樣乾淨,當你可以做這樣的事情拖出按鈕導致按鈕失去它的亮點 – 2012-04-01 21:39:19
要使用拖動外佔優勢的情況下,你可以在最後一行改爲:[self.testButton addTarget :self action:@selector(t2 :) forControlEvents:UIControlEventTouchUpInside | UIControlEventTouchUpOutside]; – 2012-04-01 21:50:22
- 1. 按鈕突出顯示狀態的延遲
- 2. 按鈕突出顯示狀態和手勢
- 3. 按鈕不顯示按下的狀態?
- 4. 如何在按下按鈕時突出顯示一個按鈕
- 5. Android:圖像按鈕或按鈕突出顯示效果時按
- 6. 在Swift3中使用類自定義按鈕及其突出顯示的狀態
- 7. 突出顯示Rails中活動按鈕的一般方法
- 8. 突出顯示按鈕按下它
- 9. 顯示離開狀態31天
- 10. 單擊後突出顯示的按鈕
- 11. 不突出顯示文本的按鈕
- 12. 表格視圖單元格內的按鈕在單元格上點擊時顯示突出顯示的狀態
- 13. UItabBarItem突出顯示狀態圖像
- 14. 如何突出顯示按下其他按鈕的按鈕
- 15. 如何突出顯示菜單按鈕?
- 16. 按鈕卡住突出顯示
- 17. 自動突出顯示UITabBar按鈕
- 18. 如何突出顯示所選按鈕?
- 19. 突出顯示與CSS單選按鈕
- 20. iPad Safari按鈕突出顯示問題
- 21. onLongClick後突出顯示按鈕不亮
- 22. Xcode突出顯示區域或按鈕
- 23. 如何防止按鈕突出顯示
- 24. 製作菜單按鈕突出顯示
- 25. 按鈕不會突出顯示
- 26. 突出顯示按鈕一次一個
- 27. Android AndEngine按鈕仍然突出顯示
- 28. Xcode - 按鈕突出顯示不一致
- 29. html按鈕組件不突出顯示
- 30. Android啓用或禁用時在按鈕上顯示GPS狀態
這正是我一直在尋找前的亮狀態!謝謝! – arnoapp 2012-04-01 22:20:36