ios-iphone中的圆形相框效果

问题描述

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

ios-iphone中的圆形相框效果的相关文章

iOS开发中Quartz2D控制圆形缩放和实现刷帧效果_IOS

Quartz2D简要回顾一.什么是Quartz2D  Quartz 2D是⼀个二维绘图引擎,同时支持iOS和Mac系统  Quartz 2D能完成的工作:   绘制图形 : 线条\三角形\矩形\圆\弧等   绘制文字   绘制\生成图片(图像)   读取\生成PDF   截图\裁剪图片   自定义UI控件 二.Quartz2D在iOS开发中的价值 为了便于搭建美观的UI界面,iOS提供了UIKit框架,⾥⾯有各种各样的UI控件 UILabel:显⽰文字 UIImageView:显示图片 UIBu

JS IOS/iPhone的Safari浏览器不兼容Javascript中的Date()问题如何解决_javascript技巧

var date = new Date('2016-11-11 11:11:11'); document.write(date); 最近在写一个时间判断脚本,需要将固定好的字符串时间转换为时间戳进行比较,在做的时候个人习惯使用chrome作为调试工具,代码基本完成之后,一切正常: 使用其他浏览器访问,好嘛,IE跟safari都不兼容,返回错误"Invalid Date". 想着估计是字符串格式的问题,改成'2016/11/11 11:11:11'再测试,结果正常,以为这样应该没问题了,

iOS中 超简单抽屉效果(MMDrawerController)的实现

ios开发中,展示类应用通常要用到抽屉效果,由于项目需要,本人找到一个demo,缩减掉一些不常用的功能,整理出一个较短的实例. 首先需要给工程添加第三方类库  MMDrawerController:这里讲的实例只加入了左滑抽屉.右滑和左滑只是初始化时多添加一个右视图控制器,其他方法基本相同. 下面是用手势实现抽屉的拉出和收回 1.初始化跟视图控制器时,在AppDelegate中导入头文件 #import "MMDrawerController.h" 2.初始化方法先初始化左视图和中心视

Android UI设计系列之自定义SwitchButton开关实现类似IOS中UISwitch的动画效果(2)_Android

做IOS开发的都知道,IOS提供了一个具有动态开关效果的UISwitch组件,这个组件很好用效果相对来说也很绚丽,当我们去点击开关的时候有动画效果,但遗憾的是Android上并没有给我们提供类似的组件(听说在Android4.0的版本上提供了具有动态效果的开关组件,不过我还没有去看文档),如果我们想实现类似的效果那该怎么办了呢?看来又得去自定义了. 公司的产品最近一直在做升级,主要做的就是把界面做的更绚丽更美观给用户更好的体验(唉,顾客是上帝......),其中的设置功能中就有开关按钮,原来的开

iOS开发中常用的各种动画、页面切面效果_IOS

今天主要用到的动画类是CALayer下的CATransition至于各种动画类中如何继承的在这也不做赘述,网上的资料是一抓一大把.好废话少说切入今天的正题. 一.封装动画方法 1.用CATransition实现动画的封装方法如下,每句代码是何意思,请看注释之. #pragma CATransition动画实现 - (void) transitionWithType:(NSString *) type WithSubtype:(NSString *) subtype ForView : (UIVi

未来iOS 7中的语音听写将允许iPhone进行转换

硅谷网讯 据国外媒体报道,据iOS 7 Beta版中所泄露出的部分源代码显示,苹果目前正在针对iOS设备测试一个本地.离线版的语音听写功能. 苹果开发者哈玛扎-苏德(Hamza Sood)表示,自己已经在两个iOS 7的Beta版本中发现了这一代码,但该代码并不存在于iOS 6中.需要指出的是,现有的iOS系统语音听写功能会首先通过软件将语音内容上传至云端,然后才能被转换成文本.由于这样的操作方式需要涉及到网络连接以及云后台处理,因此iOS 6中的语音听写可能需要加载很长时间,甚至出现数据错误的

iOS 7中增的API:游戏功能改善、多任务支持、AirDrop

在周一举行的WWDC上,苹果软件工程高级副总裁Craig Federighi提及iOS 7中将包含1500多个全新的API,包括iBeacons.MFi游戏手柄和全新的多任务功能.这些API将会为开发者提供可以尝试的许多新功能,为未来更好的软件和硬件打下基础,用户可以体验到全新的游戏技术.位置功能等等,下面是一些比较有创意的API功能: iBeacons:根据MacWorld报道,iBeacons是被设计使用蓝牙低能耗进行微定位的,这项技术允许iOS设备使用蓝牙4.0获取位置数据. 分享菜单的A

布卡漫画:iOS平台中最好用且漫画收藏最多的App

&http://www.aliyun.com/zixun/aggregation/37954.html">nbsp;   iOS平台上看漫画的App很多(如漫画控.漫画街等等),但方便性从来没有任何一个App能够跟Android平台上的「布卡漫画」匹敌的软体,也让很多iOS的用户觉得十分不爽,今天小编与大家分享一款由「布卡漫画」官方所推出的iOS版应用,不过因為App Store审核的关系,iOS版的布卡漫画并没有在App Store上架,您的iPhone/iPod或iPad必须越

iOS开发中UIPopoverController的使用详解_IOS

一.简单介绍 1.什么是UIPopoverController 是iPad开发中常见的一种控制器(在iPhone上不允许使用) 跟其他控制器不一样的是,它直接继承自NSObject,并非继承自UIViewController 它只占用部分屏幕空间来呈现信息,而且显示在屏幕的最前面 2.使用步骤 要想显示一个UIPopoverController,需要经过下列步骤 (1)设置内容控制器 由于UIPopoverController直接继承自NSObject,不具备可视化的能力.因此UIPopover