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

UIView:如何在视图中使子视图的边框变圆?

在iOS开发中,可以使用以下方法来将子视图的边框变圆:

  1. 使用cornerRadius属性:通过设置子视图的layer.cornerRadius属性,可以将子视图的边框设置为圆角。例如,如果你有一个名为subview的子视图,你可以使用以下代码将其边框设置为圆角:
代码语言:txt
复制
subview.layer.cornerRadius = subview.frame.size.width / 2.0
subview.layer.masksToBounds = true

这里的subview.frame.size.width表示子视图的宽度,通过将宽度除以2,可以将圆角的半径设置为子视图宽度的一半。subview.layer.masksToBounds = true用于裁剪子视图的边界,确保边框不会超出子视图的边界。

  1. 使用UIBezierPath:使用UIBezierPath类可以创建一个自定义的边界路径,并将其应用于子视图的layer.mask属性。以下是一个示例代码:
代码语言:txt
复制
let maskPath = UIBezierPath(roundedRect: subview.bounds, cornerRadius: subview.bounds.size.width / 2.0)
let maskLayer = CAShapeLayer()
maskLayer.path = maskPath.cgPath
subview.layer.mask = maskLayer

这里的UIBezierPath(roundedRect:cornerRadius:)方法创建了一个圆角矩形的路径,subview.bounds表示子视图的边界,subview.bounds.size.width / 2.0表示圆角的半径。然后,我们创建了一个CAShapeLayer对象,并将路径应用到该图层的mask属性上,从而将子视图的边界设置为圆角。

注意:以上方法适用于使用UIView进行视图布局的情况。

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

相关·内容

iOS编程101:如何创建圆形头像和圆角图片

IOS7的一个变化是相对于方形图像,更偏爱于使用圆形图像。在内置的应用中可以看到圆形图标或圆形图像,如联系人和电话应用。...UIKit中的每个视图(例如UIView、UIImageView)都备份在一个CALayer类的实例中(即layer对象)。layer对象用来管理视图的备份存储和处理视图相关的动画。...layer对象提供了多种属性,使用它们来控制视图的可视内容: 背景颜色 边框和边框宽度 阴影颜色,宽度等 Opacity(不透明度) 圆角半径 Corner radius就是我们用来绘制圆角和圆形图像的属性...创建圆形用户头像 接下来,让我们看看如何通过改变圆角半径,使用户头像转换成一个圆形图像。...再次编译并运行应用程序,您现在应该看到一个拥有白色边框的头像。 创建圆角图片 你可以使用同样的方法来创建圆角图像。关键是要改变圆角半径,并将其设置为其他值。

2.1K20

setNeedsDisplay看我就懂!

而setNeedsLayout会默认调用layoutSubViews,处理子视图中的一些数据。...一、着手 我定义了一个UIView的子类,用于演示使用setNeedsDisplay,这个CircleView子类会在draw(_ rect: CGRect)方法内简单绘制一个圆,它有一个颜色属性,这是我们将要设置用来改变圆的颜色...一般来说,使用框架控件,当您设置属性(如显示标签或值)时,您将会使用该属性,这样会导致重新绘制控件,因为系统会实现对控件drawRect方法的调用。...而我们自定义了自己的UIView子类,所以我们需要处理影响显示的控件的更新。在改变颜色的情况下,当然需要我们自己控制重新绘制。...drawRect的UIView子类时,需要在需要重绘时指示给系统。

1.3K60
  • 自定义UISearchController的外观

    以前我们在项目中使用搜索框的时候,如果用系统自带的控件则是使用UISearchDisplayController,而自从iOS8之后,系统重新给我们提供了一个搜索控件:UISearchController...在UISearchController中我们无需再自己初始化UISearchBar,只需要提供searchResult展示的视图。...同时我们也可以直接获取UISearchBar的subViews,UISearchBar的subView是一个UIView的实例,这个UIView包含了所有在UISearchBar上可以展示的子视图,iOS...我们可以通过循环遍历出UISearchBar上所有展示出来的子视图 for(UIView*viewin[[[_searchController.searchBar subviews]lastObject...UISearchBarTextField")]) {} if([viewisKindOfClass:NSClassFromString(@"UINavigationButton")]) {} } 通过KVC获取子视图

    1.7K20

    iOS学习——UIView的研究

    在iOS开发中,我们知道有一个共同的基类——NSObject,但是对于界面视图而言,UIView是非常重要的一个类,UIView是很多视图控件的基类,因此,对于UIView的学习闲的非常有必要。...; 245 /** 插入子视图(将子视图插入到subviews数组中index这个位置) */ 246 - (void)insertSubview:(UIView *)view atIndex:(NSInteger...:(NSInteger)index2; 249 250 /** 添加子视图(新添加的视图在subviews数组的后面, 显示在最上面) */ 251 - (void)addSubview:(UIView...*)view; 252 /** 插入子视图(将子视图插到siblingSubview之下) */ 253 - (void)insertSubview:(UIView *)view belowSubview...:(UIView *)siblingSubview; 254 /** 插入子视图(将子视图插到siblingSubview之上) */ 255 - (void)insertSubview:(UIView

    2.8K80

    Core Animation Programming

    视图在屏幕上可以是一个矩形块,它能够拦截类似鼠标点击或者触摸手势等用户交互方式. 并且在层级关系上可以互相嵌套,一个视图可以管理它所有的子视图的位置等.在开发项目过程中,这是非常常见的一个使用场景....也能管理子视图的位置.甚至CALayer 是有很多方法和属性来做动画处理和变换处理. 但是,CALayer与UIView在功能上的区别在哪儿CALayer 不处理用户交互....UIView 与 CALayer 平行的层级关系 每个UIView 都会有一个CALayer 实例图层属性.也就是backing layer.UIView 的职责就是创建并管理这个图层.用来确保当前子视图在层级关系中添加或者移除的时候...为何开发者要使用CALayer 根据刚刚的描述,既然CALayer 只是UIView 的内部实现细节,那为何在要来使用或者学习它?...图层不能处理触摸事件,同样也要视图不能做的事情: 阴影,圆角,颜色边框 3D变换 非矩形范围 透明遮罩 多级非线性动画 CALayer's function 除了CALayer 类,CoreAnimation

    1.1K10

    绘制图形的视图方式为_三角函数图象的平移变换

    例: 画3个部分重叠的视图 Objective-C: UIView* v1 = [[UIView alloc] initWithFrame:CGRectMake(113, 111, 132, 194)...Bounds and Center(边框和中心) CGRectInset函数,画出视图边框 例1: 画一个带有粗边框的视图 UIView* v1 = [[UIView alloc] initWithFrame...)的原点导致子视图(subview)位置发生变化 (本例中子视图向左上移动) UIView* v1 = [[UIView alloc] initWithFrame:CGRectMake(113...CGAffineTransformMakeRotation(45 * M_PI/180.0); 效果: 例2: 缩放变换 v1.transform = CGAffineTransformMakeScale(1.8, 1); 效果: 例3: 子视图先平移后旋转...CGAffineTransformMakeTranslation(100, 0); v2.transform = CGAffineTransformRotate(v2.transform, 45 * M_PI/180.0); 效果: 例4: 子视图先旋转后平移

    60120

    iOS动画-CALayer基础知识

    视图的的职责就是创建并管理这个图层,以确保子视图在层级关系中添加或者被移除的时候,它们的关联图层也同样对应在层级关系树当中有相同的操作。...下面是一些UIView没有暴露出来的CALayer的功能: 设置阴影、圆角、带颜色边框 3D变换 非矩形范围 透明遮罩 多级非线性动画 二、CALyer寄宿图与contents属性 CALayer具有和...,默认1.0;1.0:以每个点1个像素绘制图片;2.0:以每个点2个像素绘制图片,Retina屏幕; maskToBounds(BOOL) clipsToBounds(BOOL) 超出边界的内容或者子视图是否显示...contentsRect (CGRect) 允许在图层边框里显示寄宿图的一个子域 contentCenter (CGRect) 定义一个固定的边框和一个在图层上可拉伸的区域 三、UIView方法绘制自定义寄宿图...-drawRect:方法是UIView没有默认实现的方法,因为寄宿图并不是必须的;但如果UIView检测到此方法被实现了,此方法会被自动调用,然后我们就可以在其中使用Core Graphics绘制自己需要的内容了

    1.9K50

    iOS从Xib中设置样式

    而经过我的测试发现在Xcode6.1和Xcode6.4下这个margin可能表现行为还不一样。 为了避免麻烦,还是不用margin约束比较好,如何在添加约束时不使用margin约束呢?...当然你可以去掉Constrain to margin的勾选,不过这要是一个一个去掉勾选也是挺烦的事情,而且对旧项目来说这可能又会导致原来布局好的视图产生变动。...UIView(border_cornerRadius) // 注意: 加上IBInspectable就可以可视化显示相关的属性哦 /** 可视化设置边框宽度 */ @property (nonatomic...) /** * 设置边框宽度 * * @param borderWidth 可视化视图传入的值 */ @dynamic borderWidth; - (void)setBorderWidth.../** * 设置边框宽度 * * @param borderWidth 可视化视图传入的值 */ - (void)setBorderWidth:(CGFloat)borderWidth

    2.4K20

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

    视图在层级关系中可以互相嵌套,一个视图可以管理它的所有子视图的位置。 在iOS中,所有的视图都是从UIView这个基类派生出来的。...CALayer类在概念上和UIView类似,也是一些被层级关系树管理的矩形块,也可以包含一些内容,并且管理子视图的位置。...1.3 平行的层级关系 每个UIView都对应着一个CALayer,视图的职责是创建并管理这个图层,以确保党子视图在层级关系中添加或者被移除的时候,他们对应的图层也同样的在对应的层级关系树中有相同的操作...但是有时候我们只使用UIView还是会有些捉襟见肘的,CALayer暴露了一些UIView没有提供的功能: 阴影、圆角、边框 3D变换 非矩形范围 透明遮罩 非线性动画 ---- 2.寄宿图 2.1...2.1.5 contentsRect CALayer的contentsRect属性允许我们在图层边框里显示寄宿图的一个子域。和bounds、frame不同,contentsRect不是按点来计算的。

    1.2K20

    视觉效果 -- iOS Core Animation 系列三

    通过上面的示例可以发现: 只设置cornerRadius时,默认情况下,只影响背景颜色,而不影响背景图片或者子图层。 如果想要截取这个视图的图片和子视图,需要设置masksToBounds为YES。...borderColor定义了边框的颜色,默认为黑色。 borderColor是CGColorRef类型。 边框绘制在图层边界里面,在所有子图层之前。...如上面的示例的结果一样,边框并不会把寄宿图或子图层的相撞计算出来。而且绘制边框会显示在最上层。 阴影 shadow 阴影属性 控制图层阴影的属性会比前面的边框多一些。...如果想了解的话请点击此处 组透明 alpha UIView有一个alpha属性来决定视图的透明度,对应的CALayer有一个opacity属性。这两个属性都会影响子层级的显示透明度。 下面做个示例。...但是如果图层包含一个同样显示50%透明的子图层时,你所看到的视图,50%来自子视图,25%来了图层本身的颜色,另外的25%则来自背景色。 如果想保持透明度一直。

    1.1K30

    iOS14开发-入门知识

    Core Services 包含了多种核心服务提供给 App 使用,如网络、线程、定位等。...Media 层主要包括了各种媒体文件的处理,通过它我们可以在应用程序中使用各种媒体文件,进行音频与视频的录制,图形的绘制,以及制作基础的动画效果。...UIView与UIViewController 初步印象 iOS 开发中,一个界面就是一个 UIViewController(视图控制器),界面上显示的内容就是 UIView(视图)。...tag:标记(Int 类型,默认等于0),设置后,可以通过所在容器View.viewWithTag方法拿到这个视图。 title:标题。 superview:父视图。 subviews:所有子视图。...@IBOutlet与@IBAction 引入 如何在代码中获取 Storyboard 中的自定义 UIView?

    2.9K40

    IOS开发系列——UIView专题之五:常用开发技巧篇

    5.1.3内容自适应属性UIViewContentMode UIImageView的contentMode这个属性是用来设置图片的显示方式,如居中、居右,是否缩放等,有以下几个常量可供设定: UIViewContentModeScaleToFill...:返回nil; •若返回YES,则向当前视图的所有子视图(subviews)发送hitTest:withEvent:消息,所有子视图的遍历顺序是从top到bottom,即从subviews数组的末尾向前遍历...,直到有子视图返回非空对象或者全部子视图遍历完毕; •若第一次有子视图返回非空对象,则hitTest:withEvent:方法返回此对象,处理结束; •如所有子视图都返回非,则hitTest:withEvent...如果一个子视图的区域超过父视图的bound区域(父视图的clipsToBounds属性为NO,这样超过父视图bound区域的子视图内容也会显示),那么正常情况下对子视图在父视图之外区域的触摸操作不会被识别...,因为父视图的pointInside:withEvent:方法会返回NO,这样就不会继续向下遍历子视图了。

    1.2K20

    iOS UI控件了解一下

    当一个view设置bounds时,会把自己当成一个容器,定义自己的边界大小以及左上角的初始坐标。当子视图添加到此视图时,会根据bounds指定的原点(0,0)计算frame,而非左上角。...UIView的操作方法 1)添加视图 UIView的addSubview:方法可以添加子视图,对于同一个视图的所有子视图来讲,后添加的子视图会把已加的子视图盖在下面。...UIView提供了其他添加视图的方法(详见下表): ? 2)管理视图层次 UIView除了提供添加视图的方法,还提供了管理视图层次的方法(详见下表): ?...常用UI控件介绍 UIView其实就是承载各种控件的一个容器,很多的控件都继承于UIView,只要继承UIView的控件,那么就相应的继承了UIView的各种属性,可以说UIView是视图控件之父。...7)外观控制: UITextField同样提供了外观控制的API,包括边框样式、清除按钮、辅助视图等; ? 3. UIButton 1)UIButton是什么?

    2.6K20

    iOS-圆角、边框、阴影

    demo中就是用该方法实现的,有兴趣的可以下下来看一看 conrnerRadius只影响背景颜色不影响背景图和子图层,所以往往我们在设置圆角时还会开启view的masksToBounds(剪裁属性),...当设置成YES时,图层里面所有东西都会被截取 边框 边框需要设置layer的两个属性,borderWidth和borderColor,并且边框是沿着图层bounds绘制,同时包含图层的角 borderWidth...3)shadowOffset 阴影的方向和距离,默认是(0, -3),即阴影相对于Y轴有3个点的向上位移 4)shadowRadius 阴影的模糊度,当它的值是0的时候,阴影就和视图一样有一个非常确定的边界线...阴影是通过里面的飞机来计算 所以,我们圆角加阴影的实现方案就出来了,我们可以用两个视图来实现,一个只画阴影的空的外图层,和一个经过裁剪的内图层,这样外图层的阴影会根据裁剪过后的内图层来计算,这样看起来就即有阴影又有圆角了...// 圆角+边框+阴影 UIView *view = [[UIView alloc] initWithFrame:CGRectMake(50, 50, 100, 100)]; view.backgroundColor

    2.7K50

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

    CALayer负责视图中显示内容和动画.所有动画都是作用在CALayer上的....其次 : QuartzCore框架和CoreGraphics框架是可以跨平台使用的,在iOS和Mac OS X上都能使用 (C语言编写) 但是UIKit只能在iOS中使用 (OC编写)....如 : bounds : 用于设置CALayer的宽度和高度,修改这个属性会产生缩放动画. background : 用户设置CALayer的背景色, 修改这个属性会产生背景色的渐变动画. position...此处可以和UIView的clipToBounds来比较记忆(clipToBounds为yes会使其上的内容包括子视图不能超出边界) 控件截图裁剪的三种方法: 给layer设置圆角半径layer.cornerRadius...view的clipToBounds 裁剪多余边缘 设置photoView中的所有子控件如果超出了photoView的有效范围,那么超出的部分将不会显示 photoView.clipsToBounds

    1.4K70

    大前端开发中的“树” (下)

    , height) center 是指在父视图中的 CGPoint(x + width / 2, y + height / 2) iOS 坐标系统概念图 4.3 UIView UIView 负责接收触摸手势事件通过...文本或者背景色),管理子图层的位置,在数据结构上构成树的形式,称之为图层树;图层树的能力包括: 阴影、圆角、带颜色的边框 3D 变换 非矩形范围 透明遮罩 多级非线性动画 在 CALayer 的工作过程中...渲染过程会被细分为四个分离的阶段: 布局:准备视图 / 图层的层级关系,以及设置图层属性(位置、背景色、边框等)的阶段 显示:图层的寄宿图片被绘制的阶段 准备:CoreAnimation 准备发送动画数据到渲染服务...build 流程 接下来将不断的重复这一个过程,直到 Widget 获取不到子节点,树的第一次构建就结束了。最终获得一个类似总览图中显示的数据结构。...build 我们在树的构建一节已经提到 build 的流程,视图更新的流程基本一致,区别在于 Element (或者 RenderObject) 此时可能已经存在子节点了,因此在 Widget 创建新对象之前会有一个

    1.9K30

    【IOS开发基础系列】UIView专题

    *)subview 参数 subview     被添加做子视图的视图对象 讨论     被子类重写用来执行额外的命令当子视图添加到接收者。...)insertSubview:(UIView *)viewatIndex:(NSInteger)index 参数 view     插入的视图,这个值不能是nil index     子视图索引从0开始并且不能大于子视图的数量...- (BOOL)isDescendantOfView:(UIView *)view 参数 view     一个视图用来测试子视图在视图层次中的关系 返回值     如果接收者是视图的子视图就返回YES...消息或者子视图从接收者视图层次中移除因为它要被添加到其他视图了 3 UIView动画 3.1 概述         UIView视图的动画功能,可以使在更新或切换视图时有放缓节奏、产生流畅的动画效果,进而改善用户体验...• 如所有子视图都返回非,则hitTest:withEvent:方法返回自身(self)。

    70530
    领券