Почему обновления «contentOffset» UIScrollView не влияют? - PullRequest
1 голос
/ 23 ноября 2011

У меня есть 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;
}];

Этот подход дал следующий результат: если представление прокрутки находится вВ промежуточном вертикальном положении, когда нажата одна из ее кнопок, обновление смещения содержимого вызывает визуальное изменение, но представление почти сразу возвращается в исходное состояние.

У меня нет других подсказок по этому вопросу.Не могли бы вы помочь мне?

1 Ответ

0 голосов
/ 23 ноября 2011

Возможно, это потому, что вы не установили ContentSize вашего scrollView.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...