问题描述
- iphone中的圆形相框效果
- 想用下面的代码实现一个圆形相框:
CGContextRef context = CGBitmapContextCreate(NULL self.bounds.size.width self.bounds.size.height 8 4 * self.bounds.size.width CGColorSpaceCreateDeviceRGB() kCGImageAlphaPremultipliedFirst);CGContextAddArc(context 1024/2 768/2 size 0 6.3 0);CGContextClosePath(context);CGContextClip(context);CGContextDrawImage(context self.bounds imageView.image.CGImage);CGImageRef imageMasked = CGBitmapContextCreateImage(context);CGContextRelease(context);UIImage *newImage = [UIImage imageWithCGImage:imageMasked];CGImageRelease(imageMasked);[imageView setImage:newImage];UIGraphicsEndImageContext();
在设置
size--
,圆形区域就会缩小,但是设置size++
的时候,就没有反应。
不知道怎么呢?
解决方案
你的代码修改成这样就可以了
- (IBAction)minus:(id)sender { self.radius = @([self.radius floatValue]+10.0f); [self redrawImage];}- (IBAction)plus:(id)sender { self.radius = @([self.radius floatValue]-10.0f); [self redrawImage];}-(void)redrawImage{ //set the original image first [_imageView setImage:[UIImage imageNamed:@""your image goes here""]]; CGFloat size = [self.radius floatValue]; CGContextRef context = CGBitmapContextCreate(NULL self.view.bounds.size.width self.view.bounds.size.height 8 4 * self.view.bounds.size.width CGColorSpaceCreateDeviceRGB() kCGImageAlphaPremultipliedFirst); CGContextAddArc(context 320/2 460/2 size 0 2*M_PI 0); CGContextClosePath(context); CGContextClip(context); CGContextDrawImage(context self.view.bounds _imageView.image.CGImage); CGImageRef imageMasked = CGBitmapContextCreateImage(context); CGContextRelease(context); UIImage *newImage = [UIImage imageWithCGImage:imageMasked]; CGImageRelease(imageMasked); [_imageView setImage:newImage]; UIGraphicsEndImageContext();}
时间: 2024-10-31 02:51:59