Итак, я реализовал синусоидальную волну в методе рисования UIView следующим образом:
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;
}
Здесь x - ширина каждой синусоидальной волны, а y - высота кадра.Это нарисует число синусоидальных волн, чтобы уместиться во всем UIViewFrame.Он будет производить четкую синусоидальную волну, а yc - ручку управления.Попробуйте, вам может понравиться.
Если ширина т.е.х аналогична ширине кадра, тогда будет получена одиночная синусоида.
Количество полной синусоидальной волны = (ширина кадра) / ('x' ширина каждой синусоидальной волны)