我有UIView A和UIView B. A是scrollView的子视图以及兄弟姐妹子视图C-Z。 B有一个UILongPressGestureRecognizer,可以拖动。如果B被拖入A或C-Z内部,我有能力做某事。但是,我希望只有当B在A内停留1秒钟时该功能才会消失。如果B在那之后不在A内,我不希望发生任何事情。我怎样才能做到这一点?我已经尝试过使用NSTimer了。
timer = NSTimer()
timer.scheduledTimerWithInterval(1.0,target:self, #selector(fireMethod),userInfo:nil, repeats:Yes)
它似乎工作了一次,但在第一次之后,它再也没有用了。
答案 0 :(得分:1)
试试这个Swift 3.0
func delayWithSeconds(_ seconds: Double, completion: @escaping () -> ()) {
DispatchQueue.main.asyncAfter(deadline: .now() + seconds) {
completion()
}
}
用法
delayWithSeconds(1) {
//Do something
}
答案 1 :(得分:0)
创建一个像这样的延迟函数
func delay(delay:Double, closure:()->()) {
dispatch_after(
dispatch_time( DISPATCH_TIME_NOW, Int64(delay * Double(NSEC_PER_SEC))), dispatch_get_main_queue(), closure)
}
然后在你的UILongPressGestureRecognizer
中调用该函数
self.delay(1)
{
//code here
}
答案 2 :(得分:0)
试试这段代码。
[self performSelector:@selector(yourAction:) withObject:nil afterDelay:2.3];//give delay asper your requirement.
-(void)yourAction
{
//your reuire code after delay.
}