Эти необязательные аргументы помогают продлить время, если вам нужно увеличить его (есть ограничения на время, которое служба уважает с помощью этих аргументов), вам придется переопределить распознаватель, как в stackoverflow.com/a/49810988/806328
recognizerIntent.PutExtra(RecognizerIntent.ActionRecognizeSpeech, RecognizerIntent.ExtraPreferOffline);
recognizerIntent.PutExtra(RecognizerIntent.ExtraSpeechInputCompleteSilenceLengthMillis, 1000);
recognizerIntent.PutExtra(RecognizerIntent.ExtraSpeechInputPossiblyCompleteSilenceLengthMillis, 1000);
recognizerIntent.PutExtra(RecognizerIntent.ExtraSpeechInputMinimumLengthMillis, 1500);
Во всех верхних ответах два главных способа решить проблему использует panGestureRecognizer
или contentOffset
. И методы имеют свои недостатки и профессионалов.
Метод 1: panGestureRecognizer
, Когда Вы используете panGestureRecognizer
как то, какой предложенный @followben, если Вы не хотите программно прокручивать свое представление прокрутки, он работает правильно.
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{
if ([scrollView.panGestureRecognizer translationInView:scrollView.superview].x > 0) {
// handle dragging to the right
} else {
// handle dragging to the left
}
}
Недостатки
, Но если Вы перемещаете представление прокрутки со следующим кодом, верхний код не может распознать его:
setContentOffset(CGPoint(x: 100, y: 0), animation: false)
Метод 2: Недостатки contentOffset
var lastContentOffset: CGPoint = CGPoint.zero
func scrollViewDidScroll(_ scrollView: UIScrollView) {
if (self.lastContentOffset.x > scrollView.contentOffset.x) {
// scroll to right
} else if self.lastContentOffset.x < scrollView.contentOffset.x {
// scroll to left
}
self.lastContentOffset = self.scrollView.contentOffset
}
, Если Вы хотите изменить contentOffset программно, во время прокрутки (как то, когда Вы хотите создать бесконечную прокрутку), этот метод делают проблему, потому что Вы могли бы измениться contentOffset
во время изменения мест представлений содержания и в это время, верхний переход кода в этом, Вы прокручиваете для исправления или оставленный.