Я должен признать, что на 100% не уверен, как вы используете scrollview в качестве слайдера, но вы можете использовать свойство contentOffset, чтобы получить «Точка, в которой начало представления содержимого смещено от начала координат прокрутки ".
Вам нужно будет сделать некоторые математические вычисления, чтобы превратить это в нужное вам значение, но это просто. Предположим, что ваш профиль прокрутки горизонтален и его можно прокручивать до 400 пикселей. То есть, если contentOffset равен 0, то вы находитесь в начале, и если contentOffset 400px, то вы в конце. Как вы использовали scrollview, будет точно определять, как вы это работаете, если вы в отчаянии, тогда вы можете просто напечатать значение contentOffset программно и соблюдать эмпирический диапазон.
В этом случае, вы можете получить долю расстояния через Scrollview вы на что-то вроде:
CGFloat proportionOffset = scrollView.contentOffset/400.0f;
Если затем вы хотите смоделировать диапазон [StartX, EndX], а затем просто работать :
CGFloat offset = startX + proportionOffset * (endX - startX);
proportionOffset заканчивается в диапазоне от 0 до 1, при 0, когда contentOffset является 0 и на 1, когда contentOffset 400. Если, скажем, StartX составляет 15 и EndX составляет 35, то EndX - StartX составляет 20. Если вы умножаете число в диапазоне от 0 до 1 на 20, вы получаете число в диапазоне от 0 до 20. Это как далеко в вашем диапазоне вы хотите быть. Но ваш диапазон не обязательно начинается с 0, поэтому вам нужно добавить значение startX.
Для эффективного использования умение настраивать себя как делегат прокрутки и проверять новый контент-контент только тогда, когда вы получаете scrollViewDidScroll :. В противном случае вы делаете много опросов, которые просто не нужны и, в абсолютном худшем случае, серьезно затрудняют способность процессора спать (и, следовательно, уменьшают тепло и экономят батарею).
спасибо, я дам этот снимок, но это похоже на то, что мне нужно – cgossain