ios UIImageView 部分圆角(加上 borderWidth、borderColor 效果修复)

在Swift中设置UIImageView的圆角 如果你使用的是Interface Builder,你可以忽略这一步,因为UIImageView已经在Storyboard或XIB文件中被添加到了视图层次结构中。在iOS开发中,经常需要对UI控件进行样式的定制化,其中UIImageView是常用的展示图片的控件之一。在实际应用中,你可以根据需要调整UIImageView的大小和圆角半径,以获得你想要的外观效果。在上述代码中,我们将UIImageView添加为UIViewController的子视图。是一个占位符,你需要将其替换为你自己的图像的名称。 阅读详情

前言

关于 UIImageView 部分圆角 先扔代码吧,具体的我这里就不讲了。(本文重点不在这里)

/**
 *  设置部分圆角(绝对布局)
 *
 *  @param corners 需要设置为圆角的角 UIRectCornerTopLeft | UIRectCornerTopRight | UIRectCornerBottomLeft | UIRectCornerBottomRight | UIRectCornerAllCorners
 *  @param radii   需要设置的圆角大小 例如 CGSizeMake(20.0f, 20.0f)
 */
- (void)addRoundedCorners:(UIRectCorner)corners withRadii:(CGSize)radii {
    CAShapeLayer* shape = [CAShapeLayer layer];
    shape.path = [UIBezierPath bezierPathWithRoundedRect:self.bounds byRoundingCorners:corners cornerRadii:radii].CGPath;
    self.layer.mask = shape;
}

但是问题来了如果我们加上 borderWidth、borderColor会是什么样子呢?(代码、效果图如下)

   UIImageView *imageView = [[UIImageView alloc] init];
    imageView.layer.borderColor = [UIColor redColor].CGColor;
    imageView.layer.borderWidth = 2;
    imageView.frame = CGRectMake(100, 200, 80, 80);
    [self.view addSubview:imageView];
    [imageView addRoundedCorners:UIRectCornerTopLeft | UIRectCornerTopRight withRadii:CGSizeMake(20, 20)];
   

在这里插入图片描述
可以看到效果图边框效果真的差,如果交付会被打死的。
那怎么处理呢,先上代码吧。

   UIImageView *imageView = [[UIImageView alloc] init];
    imageView.frame = CGRectMake(100, 200, 80, 80);
    [self.view addSubview:imageView];
    [imageView addRoundedCorners:UIRectCornerTopLeft | UIRectCornerTopRight withRadii:CGSizeMake(20, 20)];
   
    CAShapeLayer* shape = [CAShapeLayer layer];
    shape.path = ((CAShapeLayer *)imageView.layer.mask).path;//path 取- (void)addRoundedCorners:(UIRectCorner)corners withRadii:(CGSize)radii 函数中的 path
    shape.strokeColor = [UIColor redColor].CGColor;//边框色
    shape.lineWidth = 2*2;//2*边框宽度
    shape.fillColor = [UIColor clearColor].CGColor;//填充色
    [imageView.layer addSublayer:shape];//addSublayer
    [imageView sd_setImageWithURL:[NSURL URLWithString:@"https://images2.bestjlb.com/jlboss7370d8b2315203cfd4fdff617fd6013215427879667496070.jpg"]];

效果图
在这里插入图片描述
这个效果应该可以交付了吧,如果有什么疑问大家考虑下图层应该就明白了。

ZED2双目相机运行VINS-FUSION初试 基于ZED2运行VINS-MONO的经验,在运行VINS-FUSION前有几点tips想跟大家分享,应该能在运行的过程中避免一些踩坑吧。 TIPs 1)关于zed2标定 开始使用Kalibr进行相机单目/双目及联合标定,虽然重投影误差最高也就5个像素,但实际使用效果却并不好,故建议大家相机内参还是从ZED2相机发布出的topic获取或可尝试/usr/local/zed/settings文件下的参数文档 另,启动ZED2.launch的时候,会有一个相机(一般是左目)和IMU的轴系转换关系Camera-IMU 阅读详情

相关推荐

VS2022跨平台开发实战:SSH远程调试Linux程序全攻略

本文详细介绍了如何使用Visual Studio 2022进行跨平台开发,通过SSH协议远程调试部署在Linux服务器上的C/C++程序。文章提供了从环境搭建、连接配置、项目创建到编译调试的完整实战指南,帮助Windows开发者无缝衔接Linux环境,显著提升问题定位与开发效率。

weixin_28826521的博客 429

iOS 进阶UI设计之部分圆角、单边阴影、虚线边框、绘制虚线

当App做到一定程度时,UI设计就是要锱铢必较了,圆润丝滑的视觉设计会让人感觉更舒服,笔者总结了常见的几种UI设计的绘制方案,本质上就是在图层上进行一定的绘制。 部分圆角: 注意:iOS 11.0以下的系统,如果是自动布局,绘制之前必须让父类调用 layoutIfNeeded,确定好view的Frame。 /// 绘制部分圆角 /// @param rectCorner 圆角样式 /// @param radii 圆角 - (void)drawCornerWith:(UIRectCorner)rectCor

Andy Coding 3716

Matlab处理气象数据(六)数据的面积加权

由于地理投影导致导致每个像元实际地面面积不同,越靠近北极实际面积越小,越靠近赤道实际面积越大,如果不进行面积加权就简单平均,会导致温度较实际温度偏低。 用以下公式计算地理投影每个像元的面积: double pi = 3.1415926; double R = 6371007.181; //units - m double area = (pi/180.0)*R*R*fabs(sin(dLat1/180.0*pi) - sin(dLat2/180.0*pi)) * fabs(dLon1 - dLo

设计の诗 1万+

iOS 设置圆角和阴影并存(部分圆角)

为什么圆角和阴影不能共存?Because shadow is an effect done outside the View, and that masksToBounds set to YES will tell the UIView not to draw everything that is outside itself. 大概意思是:阴影作用于视图外部,而圆角设置裁剪会把画在视图外面的所有东西裁掉。 解决方案:那么我们可以在View上创建一个CALayer,制作阴影,让它位于我们需要添加阴影的圆角

Andy Coding 6726

Qt/C++ 音视频开发 - FFmpeg 安卓版

通过将 FFmpeg 集成到 Qt/C++ 项目中,我们可以实现强大且灵活的音视频处理功能。本文介绍了在安卓平台上使用 FFmpeg 的基本步骤,包括初始化、解码、处理和编码等。实际应用代码示例展示了如何在安卓设备上播放视频。

走向CTO的路上... 1190

SVN使用:使用TortoiseSVN遇到提示请执行“清理”命令的解决方法

作为程序员来说,在团队开发过程中关于代码管理的工具使用并不陌生,比较常用的代码合并管理工具如:Git、SVN等,虽然相关工具的使用并不复杂,但是还是要掌握常用的使用方法,尤其是相关的第三方软件的使用也是极为重要的,而且有时候使用这些三方软件来进行代码管理的时候也会遇到一些问题。本篇博文就来分享一下在SVN使用的时候使用TortoiseSVN遇到提示请执行“清理”命令的解决方法,方便查阅使用。

全沾软贱开发攻城狮 1万+

iOS-设置指定边圆角(左上、左下等)

iOS-设置指定边圆角(左上、左下等)

qq_43441647的博客 2672

Transformer模型在时间序列预测中的应用:价格和产量预测

Transformer模型由Attention is All You Need论文提出,并在机器翻译任务上取得了巨大成功。其主要特点是使用自注意力机制代替传统的递归或卷积操作进行序列建模。Transformer模型由编码器和解码器组成,其中编码器用于学习输入序列的表示,解码器用于生成目标序列。在时间序列预测中,我们只需要使用Transformer的编码器部分。编码器将历史数据作为输入,学习一个表示,然后使用该表示来预测未来的数值。

HnrzLinux的博客 736

iOS设置圆角的四种方法

  小小圆角问题,正常情况下,我们不需要过多关心,但当屏幕内比较多的时候,还是有必要了解下性能问题的   一、设置CALayer的cornerRadius 这是最常用的,也是最简单的。 cornerRadius属性影响layer显示的background颜色和前景框border,但对layer的contents不起作用。 所以一个imgView(类型为UIImageView)的imag...

weixin_34306593的博客 256

游戏大厂状态同步与帧同步技术全解析——让虚拟世界万物协同的“时间齿轮”

本文深入解析了大厂游戏开发中的两种核心同步技术:状态同步和帧同步。状态同步适合大型MMO和FPS游戏,由服务端计算并广播世界状态;帧同步则通过统一操作输入实现MOBA和RTS游戏的绝对公平。文章详细比较了两者的差异、适用场景和底层实现原理,并揭秘了《王者荣耀》《PUBG》等热门游戏的同步机制。同时探讨了本地预测、延迟补偿、防作弊等关键技术,以及未来AI和云游戏带来的同步新挑战,为开发者提供了全面的技术参考和实践指南。

本博客聚焦游戏开发技巧、创业实战心得及大学热门课程干货。这里既有技术深度,也有思维广度,无论你是开发者、创业者还是高校学子,都能在这里找到适合自己的成长之路! 919

企业级OpenClaw部署实战:10个关键配置让你从“养虾“到“精通“

OpenClaw(社区昵称"小龙虾")作为2026年开源社区最活跃的AI Agent项目,凭借其多Agent协同架构和企业级安全隔离能力,已成为中大型企业的首选AI基础设施。本文基于真实企业部署经验,系统梳理了企业级OpenClaw部署的10个关键配置:用户ID消息隔离、群组ID消息隔离、多机器人配置、无限量Agent创建、机器人与Agent关联、Agent间调度、权限配置、Hooks任务、多模型切换及一键备份迁移。

program哲学 930

UIImageView添加圆角优化

imgView.layer.cornerRadius = 10; // 这一行代码是很消耗性能的 imgView.clipsToBounds = YES; **这是离屏渲染(off-screen-rendering),消耗性能的** 给UIImage添加生成圆角图片的扩展API:这是on-screen-rendering - (UIImage *)imageWithCor

到底是天堂还是地狱... 1591

ROS机器人未知环境自主探索功能包explore_lite最全源码详细解析(二)

本系列文章主要针对ROS机器人常使用的未知环境自主探索功能包explore_lite展开全源码的详细解析,并进行概括总结。 本系列文章共包含六篇文章,前五篇文章主要介绍explore_lite功能包中 explore.cpp、costmap_tools.h、frontier_search.cpp、costmap_client.cpp等源码实现文件中全部函数的详细介绍,第六篇文章进行概括总结,包含自主探索功能包explore_lite的简介,实现未知环境自主探索功能的原理及流程总结,效果演示,使用功能包exp

慕羽★的博客 1648

OpenCore Legacy Patcher 上手:4 步给老 Mac 装上新版 macOS

OpenCore Legacy Patcher(OCLP)是个开源 Python 工具,靠重写 SMBIOS 型号、补齐 kext(内核扩展,macOS 的驱动形式)和系统盘根补丁,给被新系统拒之门外的老 Mac 重新签发"入场资格"。读完这篇,你能独立走完四件事:跑起图形界面、制作 macOS 安装 U 盘、构建并刷入 OpenCore EFI、打完根补丁让机器真正可用。 ## 一、为什么值得

gitblog_00424的博客 1063

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

iOS 设置控件的部分圆角

目标: 给控件添加部分圆角或半边圆角 方案: 用贝塞尔曲线与CAShapeLayer结合使用,将控件的layer层的mask设置为前面操作过的CAShapeLayer /** 给控件添加部分圆角 * @param rect 控件的rect * @param corners 需要设置为圆角的角 UIRectCornerTopLeft | UIRectCornerTopRight | UIRectCornerBottomLeft | UIRectCornerBottomRight | UIRectCor

LiangYuan优快云的博客 1405

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

iOS:swift设置部分圆角

可以将下面的configRectCorner方法写成公共方法,方便调用 let label = UILabel(frame: CGRect(x: 50, y: 100, width: 100, height: 50)) label.backgroundColor = UIColor.orange label.textColor = UIColor.white label.text = "圆角设置" label.textAlignment = .center label.layer.mask

韩博主 2875

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

iOS开发 设置单个圆角,设置圆角封装

【代码】iOS开发 设置单个圆角,设置圆角封装。

zhaofahseng的博客 827

ios view 切上部分圆角_iOS - 指定UIView的某几个角为圆角

如果需要将UIView的4个角全部都为圆角,做法相当简单,只需设置其Layer的cornerRadius属性即可(项目需要使用QuartzCore框架)。而若要指定某几个角(小于4)为圆角而别的不变时,这种方法就不好用了。对于这种情况,Stackoverflow上提供了几种解决方案。其中最简单优雅的方案,就是使用UIBezierPath。下面给出一段示例代码。/* 指定UIView的某几个角为圆角...

weixin_28882149的博客 1774

iOS切圆角的方式 第一种方法:通过设置layer的属性 最简单的一种,但是很影响性能,一般在正常的开发中使用很少. UIImageView *imageView = [[UIImag

iOS切圆角的方式 第一种方法:通过设置layer的属性 最简单的一种,但是很影响性能,一般在正常的开发中使用很少. UIImageView *imageView = [[UIImageView alloc]initWithFrame:CGRectMake(100, 100, 100, 100)]; //只需要设置layer层的两个属性 //设置圆角 image

qq_31292239的博客 651

ios view 切上部分圆角_iOS切圆角的几个方法

这几天在研究到切圆角的方法,也找了下网上的资料 ----------切圆角尽量避免离屏渲染。1.直接用视图中layer中的两个属性来设置圆角,这种方法比较简单,但是及其影响性能不推荐:@property (strong, nonatomic) IBOutlet UIImageView *imageView;self.imageView.layer.cornerRadius = 5;self.ima...

weixin_35817272的博客 1612

ios view部分圆角

UIRectCorner corner = UIRectCornerTopRight | UIRectCornerTopLeft; // 圆角位置,全部位置 UIBezierPath * path = [UIBezierPath bezierPathWithRoundedRect:self.btnImg.bounds byRoundingCorners:corner cornerR...

Goods_boy的博客 1027

IOS开发之UI进阶(设置圆角,边框颜色,边框宽度)

设置圆角:layer.cornerRadius 对应ValueType为Number或者String。如果Value值为正方形width的一半,则为圆形。 设置边框宽度:layer.borderWidth 对应ValueType为Number或者String。 设置边框颜色:layer.borderColor 对应ValueType为Color。 ...

weixin_46926959的博客 1605

ios UIView...可变的圆角和边框,某个角,多个角,设置圆角和边框

效果图: 主要类: VariableRoundedBorderView.h #import <UIKit/UIKit.h> typedef NS_OPTIONS(NSUInteger, BorderDirection) {//需要显示的边框方向 BorderDirectionLeft = 1 << 0, BorderDire...

杨克进的博客 6619

iOS 为ImageView设置圆角

1.最直接的是直接设置image VI

枫叶雪 9972

ios view添加上边框_ios - 在UIView外部添加边框(而不是在内部)

ios - 在UIView外部添加边框(而不是在内部)如果使用视图中的代码添加视图的边框self.layer.borderColor = [UIColor yellowColor].CGColor;self.layer.borderWidth = 2.0f;边框添加到视图内部,如下所示:右视图是原始视图,如您所见,边界视图的黑色区域小于原始视图。 但我想得到的是原始视图之外的边框,如下所示:。 ...

weixin_35654096的博客 1343

iOS 指定UIView的某几个圆角或边框(Swift)

在开发中我们经常会遇到对一个UIView 设置四个圆角的情况,这种情况是很好处理的。但是如果遇到只设置其中的某几个圆角的情况怎么办呢?有一种方法是通过UIBezierPath的方法来做,代码如下: /** * 设置uiview 的任意圆角 **/ func SetMutiBorderRoundingCorners(_ view:UIView,corner:CGFloat) { l...

kmonarch的博客 3024
上一篇: IOS AVAssetExportSession progress 监听压缩进度
下一篇: IOS 关于UIImageView 圆角卡顿 FPS 问题解决
蟒蛇_AutoFire
博客等级 码龄16年 21粉丝 58原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值