У меня есть UIScrollView, который можно прокручивать как по вертикали, так и по горизонтали.Это представление заполнено множеством кнопок, каждая из которых имеет собственную ширину (но все с одинаковой высотой).
Когда одна из этих кнопок нажата, интерфейс в виде слайдера оживает.Если этот интерфейс проходит поверх выбранной кнопки, необходимо прокрутить весь вид прокрутки, чтобы кнопка снова стала видимой.
Мое приложение ведет себя так, как ожидалось, когда координата Y смещения содержимого представления прокрутки установлена напредел (этот предел может быть 0 или высота представления).Но если смещение содержимого находится в промежуточном вертикальном положении, прокрутка просто не происходит.
Сначала я попробовал следующий подход:
CGPoint newOffset = CGPointMake(self.scrollView.contentOffset.x + horizontalVar,
self.scrollView.contentOffset.y);
[self.scrollView setContentOffset: newOffset animated: YES];
Какой неt, как я уже говорил.
Затем я попытался вручную анимировать представление, используя его установщик свойств:
[UIView animateWithDuration: 0.3 animations: ^{
CGPoint newOffset = CGPointMake(self.scrollView.contentOffset.x + horizontalVar, self.scrollView.contentOffset.y);
self.scrollView.contentOffset = newOffset;
}];
Этот подход дал следующий результат: если представление прокрутки находится вВ промежуточном вертикальном положении, когда нажата одна из ее кнопок, обновление смещения содержимого вызывает визуальное изменение, но представление почти сразу возвращается в исходное состояние.
У меня нет других подсказок по этому вопросу.Не могли бы вы помочь мне?