0

J'utilise UIScrollView pour créer une chronologie d'enregistrement comme l'application Voice Memo. C'est le cadre horizontal scrollview's au début. J'utilise CAShapeLayer pour dessiner des barres.Comment autoriser UIScrollView à défiler sous le décalage de contenu 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]; 

L'enregistrement démarre et dessine des barres d'onde du début i.e. vague barres sont créés à partir de zéro position X de UIScrollView. Lorsque les barres atteignent la moitié de l'écran, je commence à déplacer UIScrollView en donnant et contentOffset. Ainsi, les barres resteront au centre après cela, tout comme l'application Voice Memo.

Tout fonctionne très bien sauf la bonne chronologie UIScrollView. Si l'enregistrement est petit, contentSize ne sera pas plus grande que la largeur de l'écran. Donc, est-il possible de passer à UIScrollView en dessous de 0 contentOffSet? Parce que, après l'arrêt de l'enregistrement, l'utilisateur peut faire défiler la chronologie et commencer le contenu de l'enregistrement devrait aller jusqu'au centre de l'écran parce qu'il y a une barre de défilement au centre qui ne bouge pas et montre la durée d'enregistrement actuelle.

Répondre

0

Vous pouvez définir la propriété contentInset de manière à ce que l'encart de gauche soit correct.

self.scrollView.contentInset = UIEdgeInsetsMake(0, self.scrollView.frame.size.width/2, 0, 0); 

Espérons que cela aide.

+0

merci de répondre. Je l'ai déjà essayé. Le problème est qu'au début, les barres seront créées à partir de la position zéro. le défilement ne bouge pas jusqu'à ce que les barres atteignent la moitié de l'écran. Ensuite, je déplace la vue défilement. donc si l'enregistrement est trop petit. Je fais face à des problèmes ici. –

+0

Ensuite, vous pouvez essayer d'utiliser min contentSize comme largeur de scrollView. Avec cela fait même si vos vagues sont petites votre contentInset fera la magie. –

+0

merci pour l'idée. Je vais travailler dessus et vous faire savoir –