首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Objective- C:在UIImage上绘制边框

Objective-C是一种面向对象的编程语言,主要用于开发iOS和macOS应用程序。它是C语言的扩展,具有丰富的库和框架,可以实现各种功能。

在UIImage上绘制边框可以通过以下步骤实现:

  1. 导入UIKit框架:在Objective-C中,绘制边框需要使用UIKit框架,因此需要在代码文件的开头导入该框架。
代码语言:objective-c
复制
#import <UIKit/UIKit.h>
  1. 创建UIImage对象:首先,需要创建一个UIImage对象,可以通过图片文件名或者其他方式创建。
代码语言:objective-c
复制
UIImage *image = [UIImage imageNamed:@"image.png"];
  1. 创建UIImageView对象:接下来,需要将UIImage对象显示在屏幕上,可以使用UIImageView来实现。
代码语言:objective-c
复制
UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
  1. 设置边框属性:通过设置UIImageView的layer属性来实现边框的绘制。可以设置边框的颜色、宽度、圆角等属性。
代码语言:objective-c
复制
imageView.layer.borderColor = [UIColor redColor].CGColor;
imageView.layer.borderWidth = 2.0;
imageView.layer.cornerRadius = 10.0;
  1. 添加到视图:最后,将UIImageView对象添加到视图中,以便显示在屏幕上。
代码语言:objective-c
复制
[self.view addSubview:imageView];

这样,就可以在UIImage上绘制边框了。根据具体的需求,可以调整边框的样式、颜色和宽度等属性。

腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

iOS开发——制作圆形头像

今天看到美工给的登陆效果图时,我发现也是要求做一个圆形的头像显示效果,晚上琢磨之后,我打算把这段经验记录一下,因为以后肯定会用到的次数也很多,为此我也专门Category一个类目以便日后使用。...制作这个圆形头像,我的大体思路就是直接用Core graphic直接绘制,将原本的非圆形图片直接裁剪为圆形,之后再绘制外面的阴影。...如果对外边框没有要求的同学,可以直接用最简单的方式来设置,我把简单的方法先贴出来: UIImage * image = [UIImage imageNamed:@"icon_huo"]; UIImageView...0.32]]; //头像图片 UIImage *image = [UIImage imageNamed:icon]; //设置头像白色边框 像素6px CGSize...CGRectMake(0, 0, size.width, size.height)); //剪切可视范围 CGContextClip(context); //绘制边框图片

1.2K20
  • iOS开发CoreGraphics核心图形框架之二——深入理解图形上下文

    Path路径绘制到当前视图上,一篇博客只是抛砖引玉,本片博客将更深入的介绍下有关上下文的更多内容。...4.图层上下文:用于将内容绘制Layer图层。 5.打印上下文:使用Mac打印功能时,此上下文用于将内容绘制在打印输出源。...kCGPathStroke, //边框绘制 kCGPathFillStroke, //边框绘制并填充 kCGPathEOFillStroke //补集进行边框和填充绘制 */ void..., CGRect rect); //进行矩形区域的边框绘制 可以设置边框宽度 void CGContextStrokeRectWithWidth(CGContextRef cg_nullable c,...(CGContextRef cg_nullable c, bool allowsFontSubpixelPositioning); //这个方法会在当前Context中开启一个透明的层 之后的绘制绘制到这个透明的层

    2.7K20

    Android 使用Canvas图片绘制文字的方法

    【Android】Android中 Paint 字体、粗细等属性的一些设置 Android SDK中使用Typeface类来定义字体,可以通过常用字体类型名称进行设置,如设置默认黑体: Paint mp...实际发现,最后绘制的效果与手机硬件也有些关系,比如前面的绘图测试程序....一个小应用,图片绘制文字,以下是绘制文字的方法,并且能够实现自动换行,字体自动适配屏幕大小 private void drawNewBitmap(ImageView imageView, String...icon Canvas canvas = new Canvas(icon); // 建立画笔 Paint photoPaint = new Paint(); // 获取更清晰的图像采样...canvas.translate(start_x, start_y); staticLayout.draw(canvas); } 以上这篇Android 使用Canvas图片绘制文字的方法就是小编分享给大家的全部内容了

    4.4K20

    图层树和寄宿图 -- iOS Core Animation 系列一

    CALayer类概念和UIView类似,也是一些被层级关系树管理的矩形块,也可以包含一些内容,并且管理子视图的位置。...但是 iOS,如果将 UIImage 的值赋给它,只能得到一个空白的图层。 事实,真正赋值的类型应该是CGImageRef,这是一个指向CGImage结构的指针。...它定义了一个苦丁的边框和在图层可拉伸的区域。 默认情况下,contentsCenter是{0, 0, 1, 1},意味着如果大小改变(contentsGravity),寄宿图会被均匀的拉伸。...这效果看起来和UIImage里的resizableImageWithCapInsets:非常类似,它可以运用到任何寄宿图,包括Core Graphics运行时绘制的图形。 ?...blueLayer显式调用了-display。因为当图层显示屏幕时,CALayer不会自动重绘,这和UIView不同。需要手动调用。 我们没有调用masksToBounds。

    1.2K20

    CC++const用法的区别

    首先,CC++大体结构不同,却在语法上相同。  所以使用的时候,我们会时常遇到一些莫名其妙的问题,觉得语法是正确的,但是编译的时候却出现一个红色的 error!...&var; 9 *p = 1; 10 printf("%d\n",var); 11 getchar(); 12 }  答案很定不用说:    1      原因也很简单:  C弱类型语言...,C++是强类型语言。  ...原因是C++是强类型语言,C++的数据的类型更加严格与苛刻 !      ...当然对于C++为何会出现指针的值为*p=3而var=10这样的情况,其实,*P所指的常量地址真实的内存已经修改了,但是编译器并没有从内存地址中取值,而是直接从寄存器中取的值,所以var=10依旧表面上依旧没有发生什么改变

    72740

    CALayer 图层概念二、CALayer属性二、方法

    UIView负责监听和相应事件.UIView是更高层的封装 iOS 中,你能看得见,摸得着的东西基本都是UIView.比如一个按钮,一个文本标签,一个文本输入框, 一个图标等.这些都是UIView...,其实UIView之所以能显示屏幕,完全是因为它内部的一个图层,创建UIView对象时, UIView内部会自动创建一个图层 (即CALayer对象), 通过UIView的layer属性即可访问这个图层....当UIView需要显示到屏幕时,会调用drawRect:方法进行绘图,并且会将所有内容绘制自己的图层,绘图完毕后,系统会将图层拷贝到屏幕,于是就完成了UIView得显示.换句话说,UIView...UIColor, UIImage是定义UIKit框架中的....其次 : QuartzCore框架和CoreGraphics框架是可以跨平台使用的,iOS和Mac OS X都能使用 (C语言编写) 但是UIKit只能在iOS中使用 (OC编写).

    1.4K70

    swift手撕二维码一、简介二、二维码综合案例

    此前被广泛使用的zbarsdk目前不支持64位处理器,而在15年的2月起,苹果是不允许不支持64位处理器的APP架的。...改变二维码的颜色或者添加背景图片不会对二维码扫描造成影响,可是若在二维码添加了前景则必定会遮挡住二维码的某些部分,那么我们又怎么确保能正确的扫描到二维码指定的地址去呢?...func getNewImage(sourceImage:UIImage,center:UIImage) -> UIImage { } 方法中首先要通过传入的二维码图片开启图像的上下文 let size...= sourceImage.size //开启图形上下文 UIGraphicsBeginImageContext(size) 之后绘制大小图片,大图片即为二维码,设置大小边框为0,0,宽度,高度...layer.frame = view.layer.bounds view.layer.addSublayer(layer) 插入边框 // 这样是没有二维码的边框的,所以插入边框

    1.8K70

    Linux用Eclipse写C++程序

    我厂很多同学使用VCwindows编写linux的C/C++程序,然后再传的开发服务器,然后再编译和调试。如果有修改,可能会直接用vi去改了,然后再把源代码同步回来。其实这样做挺折腾的。...但是,也有另外一个方案,就是 Linux安装个写C/C++程序的IDE,这样可以直接编写、编译、运行、上传SVN,非常方便。...注意Eclipse有很多个包,如果只写C/C++程序,就直接下Eclipse CDT这个套件好了,省了还要下支持JAVA开发的东西。 ?...如果你使用gtest来做单元测试,可以装个“C/C++ Unit Testing Support“,这样就可以直接在IDE里面运行和调试单元测试了。...按Ctrl+Tab可以.h和.cpp之间切换。保存的时候自动编译。

    3.4K70

    实战|C++vscode的调试配置

    ⽬标 按照本⽂的流程可在vscode平台上实现像在windows系统下VS调试C++程序的效果。...本⽂旨在让刚接触vscode却⼜不知如何 debug的童鞋能够快速搭建⾃⼰的编程环境,使更多的精⼒focuscoding或algrithm,若有错误的地⽅,欢迎指正和交流。...直接点击左侧第五个按钮,⾥⾯搜索⼀些⽀持C++的插件,⽐如下图中的C/C++,C++ Intellisense,直接搜索插件名字后点下载就会⾃动安装,安装完了就会在下图的ENABLED列表⾥了。...接下去只要再弄2个⽂件,就可以debug你的项⽬了,第⼀个是tasks.json⽂件,可以搜索如何⽣成,不过更直接的⽅ 式是直接在.vscode下新建⼀个tasks.json⽂件,然后把以下内容直接复制上去...总结 vscode下配置C++调试环境主要就是做⼀件事:创(复)建(制)1个⽂件夹和3个⽂件: launch.json tasks.json 编译执⾏的脚本:例⼦中的脚本内容实际就是cmake内容

    3.9K20

    C#入门知识大总结(C语言的基础

    前言 本文为C#入门知识,是在有一定C语言或C++基础上进行的总结,因此会省略许多C语言的基础知识,但是对一些C#特有或者是C语言中比较少见或重要的知识也会归纳到博文里。...=的比较 由于char是特殊的整型,因此它既可以和自己同类型比较 还可以和数值类型进行比较 还可以和字符类型进行大小比较 char c = 'a'; result = c > 123; result =...c > 'B'; 十、逻辑运算符 逻辑与:&&    逻辑或:||      逻辑非:!...符号和规则与C语言中相同 1.注意 逻辑运算符当中逻辑非(!)...十三、 if语句 原理等同C语言 十四、switch语句 原理等同C语言 十五、while语句 原理等同C语言 十六、do while语句 原理等同C语言 十七、for循环 原理等同C语言

    24720

    iOS学习——核心动画之Layer基础

    //设置图层边框,图层中使用CoreGraphics的CGColorRef _RedView.layer.borderColor = [UIColor whiteColor].CGColor;...UIImageView中是UIView的主layer添加了一个次layer(用来绘制contents),我们设置边框的是主layer,但是次layer在上变,不会有任何的影响,所以当我们调用切割语句的时候...之所以能够显示屏幕,是试音UIView中有一个图层 创建UIView的时候,系统会自动创建一个CALayer在其中,用于显示东西,可以通过view.layer来去获取图层属性 当UIView要去显示的时候...,先去调用drawRect方法,将要绘制的东西绘制到图层,然后拷贝图层,完成了UIView的显示 UIView只有交互的功能,没有显示的功能 CALayer只要显示的功能,没有交互的功能 UIView...CATransform3DMakeRotation(angle2Rad(hourA), 0, 0, 1); } 10.3 将布局和旋转进行组合 每过一秒,我们的秒针就需要变化位置,所以我们我们需要设置一个定时器,开始时每秒执行一次旋转布局绘制

    1.5K61

    Core Animation实战二(寄宿图)

    [self contentImageDemo]; } //寄宿图 -(void)contentImageDemo{ UIImage * image = [UIImage imageNamed...它并不是总会对屏幕的寄宿图有影响。如果你尝试对我们的例子设置不同的值,你就会发现根本没任何影响。...imageLayer.contentsScale= 5.f; //我们裁切图片的时候肯定用过这个属性,是否绘制超出吧边界的视图 imageLayer.masksToBounds =...imageLayer.contentsRect = CGRectMake(0, 0, 0.5, 0.5); //contentsCenter其实是一个CGRect,它定义了一个固定的边框和一个图层可拉伸的区域...,CALayer创建了一个合适尺寸的空寄宿图(尺寸由bounds和contentsScale决定)和一个Core Graphics的绘制上下文环境,为绘制寄宿图做准备,他作为ctx参数传入。

    43730
    领券