2014-06-18 27 views
0

我想让一个UIView的边框像波浪一样,我只是无法弄清楚如何。 我曾尝试只是为了绘制这里找到的代码的波浪线,但它只是不工作我如何制作uiview的波浪边框?

CGRect rect = CGRectMake(100, 100, 500, 500); 

self.heightCrest = 30; 
float w = 0; // starting position 
float y = rect.size.height; 
float width = rect.size.width; 
int cycles = 7;//number of waves 
self.x = width/cycles; 
CGContextRef context = UIGraphicsGetCurrentContext(); 
CGMutablePathRef path = CGPathCreateMutable(); 
while (w<width) { 
    CGPathMoveToPoint(path, NULL, w,y/2); 
    CGPathAddQuadCurveToPoint(path, NULL, w+self.x/4, y/2 - self.heightCrest, w+self.x/2, y/2); 
    CGPathAddQuadCurveToPoint(path, NULL, w+3*self.x/4, y/2 + self.heightCrest, w+self.x, y/2); 
    w+=self.x; 
} 
CGContextAddPath(context, path); 
CGContextDrawPath(context, kCGPathStroke); 
+0

这可能有助于http://ronnqvi.st /思维般的-A-贝塞尔路径/ – iphonic

回答

1

尝试这样的:

- (void)addHorizontalDownwardCurveToPath:(UIBezierPath *)path toPoint:(CGPoint)point withAmplitude:(CGFloat)amplitude { 
    CGFloat middle = (point.x + path.currentPoint.x)/2; 
    [path addQuadCurveToPoint:point 
       controlPoint:CGPointMake(middle, point.y + amplitude)]; 
}