所以我當前的項目有一個平移手勢識別器,如果我已經移動到屏幕頂部,它應該向上滾動以考慮該手勢。雖然手勢尚未結束,手勢的當前位置仍保留在屏幕的頂部,但我想要不斷地滾動。我的問題是手勢識別器只有在狀態發生變化時纔會被調用,因此只有當您在頂部來回移動時,我的內容纔會滾動,而不是在手勢繼續位於頂部時不停地滾動。有沒有合理的方式來持續調用代碼,而手勢還沒有結束,但不一定會改變?下面是我有什麼僞代碼:雖然泛姿態尚未結束,但定期事件
- (void)handleGestureRecognizer:(UIGestureRecognizer *)gesture {
if (gesture.state == UIGestureRecognizerStateChanged) {
CGPoint point = [gesture locationInView:self.view];
if (point.y < 100) {
//I would like this code to be called continually while the
//gesture hasn't ended, not necessarily only when it changes
[self updateScrollPosition];
}
}
我能想到的幾個貧民窟的方式通過基於識別的當前狀態設定狀態的bool和創造我自己的計時器定期檢查做到這一點,但它看起來很詭異,我不特別喜歡它,所以我想知道是否有人可以提出一個更清潔的解決方案。使用計時器和感覺更好
沒有被肯定你可以試試..如果(gesture.state! = UIGestureRecognizerEnded && point.y <100)[self updateScrollPosition];或嘗試一個「時間」的方法.. – snksnk
我正要建議計時器,然後我讀了「貧民窟」:-),但我認爲這不是貧民窟的意義,即sdk手勢使用定時器遍佈整個地方,只是隱藏應用程序。這可能有點冗長,但我認爲計時器是一個好方法。 – danh