Я использую UIScrollView
, чтобы создать временную шкалу записи так же, как приложение голосовой заметки. Это горизонтально scrollview's
кадр в начале. Я использую CAShapeLayer
для рисования баров.Как разрешить UIScrollView прокручиваться ниже смещения содержимого 0?
scrlViewBars.frame = CGRectMake(0, scrlViewBars.frame.origin.y, SCREEN_WIDTH, 100);
....
[shapeLayer setPath:[[UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0, barWidth, barHeight) cornerRadius:2] CGPath]];
[scrlViewBars.layer addSublayer:shapeLayer];
Запись начинается и рисует волны полосы от начала волны бары т.е. созданы из нулевой позиции X UIScrollView
. Когда полосы достигнут половины экрана, я начинаю двигаться UIScrollView
назад, давая contentSize
и contentOffset
. Таким образом, бары тогда останутся в центре после этого, как приложение Voice Memo.
Все работает отлично, за исключением надлежащего UIScrollView
шкала времени. Если запись мала, contentSize
не будет больше ширины экрана. Так можно ли UIScrollView
пойти ниже 0 contentOffSet
? Поскольку после остановки записи пользователь может прокручивать временную шкалу, а начальное содержание записи должно идти до центра экрана, потому что в центре есть панель для очистки, которая не будет перемещаться и показывает текущее время записи.
спасибо за ответ. Я уже пробовал. Проблема в том, что в начале строки будут создаваться из нулевого положения. прокрутка не будет перемещаться, пока полосы не достигнут половины экрана. Затем я перемещаю вид прокрутки. поэтому если запись слишком мала. Я сталкиваюсь с проблемами здесь. –
Затем вы можете попробовать использовать min contentSize в качестве ширины scrollView. С этим, даже если ваши волны малы, ваш контентInset будет делать магию. –
спасибо за идею. Я буду работать над этим и сообщать вам –