首页
学习
活动
专区
工具
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子类,所以我们需要处理影响显示控件更新。在改变颜色情况下,当然需要我们自己控制重新绘制。...drawRectUIView子类时,需要在需要重绘时指示给系统。

1.3K60
  • 自定义UISearchController外观

    以前我们在项目中使用搜索框时候,如果用系统自带控件则是使用UISearchDisplayController,而自从iOS8之后,系统重新给我们提供了一个搜索控件:UISearchController...在UISearchController中我们无需再自己初始化UISearchBar,只需要提供searchResult展示视图。...同时我们也可以直接获取UISearchBarsubViews,UISearchBarsubView是一个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.7K80

    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: 视图先旋转后平移

    59220

    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.3K20

    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 Core Animation 系列一

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

    1.2K20

    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 Core Animation 系列三

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

    1.1K30

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

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

    1.1K20

    iOS UI控件了解一下

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

    2.6K20

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

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

    1.4K70

    iOS-圆角、边框、阴影

    demo中就是用该方法实现,有兴趣可以下下来看一看 conrnerRadius只影响背景颜色不影响背景图和图层,所以往往我们在设置圆角时还会开启viewmasksToBounds(剪裁属性),...当设置成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

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

    , 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)。

    59130
    领券