Il est plus facile de générer simplement une onde sinusoïdale. J'implémenté onde sinusoïdale dans le procédé de drawRect UIView comme suit:
float x=75;
float yc=50;
float w=0;
while (w<=rect.frame.size.width) {
CGPathMoveToPoint(path, nil, w,y/2);
CGPathAddQuadCurveToPoint(path, nil, w+x/4, -yc,w+ x/2, y/2);
CGPathMoveToPoint(path, nil, w+x/2,y/2);
CGPathAddQuadCurveToPoint(path, nil, w+3*x/4, y+yc, w+x, y/2);
CGContextAddPath(context, path);
CGContextDrawPath(context, kCGPathStroke);
w+=x;
}
Ici x serait la largeur de chaque onde sinusoïdale, tandis que y est la hauteur du cadre. Cela dessinerait nombre d'ondes sinusoïdales pour s'adapter à l'ensemble UIViewFrame. Il produirait une onde sinusoïdale d'apparence claire et yc étant une poignée de contrôle. Essayez-le, vous pourriez aimer.
Si la largeur ie. x est similaire à la largeur du cadre puis une seule onde sinusoïdale sera produite. Nombre d'onde sinusoïdale complète = (largeur de trame)/(largeur x de chaque onde sinusoïdale) Maintenant, essayez d'ajuster l'amplitude et la fréquence de l'onde par rapport à la puissance de l'audio.