`
yangshen998
  • 浏览: 1288850 次
文章分类
社区版块
存档分类
最新评论

设置uiView,成圆角矩形

 
阅读更多

今天要做一个button, 使用系统的没啥意思,感觉学不到新东西,所以自己做uiview,(以前做symbian做神经了,啥都喜欢自己做)自己做委托,自己做控件,大家别说我贱哦。

画个圆角的矩形没啥难的,有两种方法:

1 。直接修改view的样式,系统提供好的了:

view.layer.cornerRadius = 6;
view.layer.masksToBounds = YES;

用layer做就可以了,十分简单。这个需要倒库QuartzCore.framework;


2. 在view 里面画圆角矩形

CGFloat radius = 20.0;
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetRGBStrokeColor(context, 1.0, 1.0, 1.0, 1);
CGFloat minx = CGRectGetMinX(rect), midx = CGRectGetMidX(rect), maxx = CGRectGetMaxX(rect);
CGFloat miny = CGRectGetMinY(rect), midy = CGRectGetMidY(rect), maxy = CGRectGetMaxY(rect);
CGContextMoveToPoint(context, minx, midy);
CGContextAddArcToPoint(context, minx, miny, midx, miny, radius);
CGContextAddArcToPoint(context, maxx, miny, maxx, midy, radius);
CGContextAddArcToPoint(context, maxx, maxy, midx, maxy, radius);
CGContextAddArcToPoint(context, minx, maxy, minx, midy, radius);
CGContextClosePath(context);
CGContextDrawPath(context, kCGPathFill);


用画笔的方法,在drawRect里面做。

希望大家都不要满足现状,老用xib, 多思考,这样才不至于被淘汰。

分享到:
评论

相关推荐

    自定义的圆角矩形

    在iOS中,可以使用Swift语言的`UIView`子类来实现自定义的圆角矩形。创建一个新的Swift文件,如`CustomRoundedRectangleView.swift`,并定义一个类: ```swift import UIKit class CustomRoundedRectangleView: ...

    IOS圆角和阴影处理

    在设置圆角时需要注意,如果视图的背景颜色是透明的,那么圆角效果不会显示,因为系统默认会绘制矩形的边框。要显示圆角,可以设置背景色或开启`clipToBounds`: ```swift view.backgroundColor = .white // 设置...

    多彩的圆角矩形Dash边框.zip

    "多彩的圆角矩形Dash边框.zip" 提供的开源项目显然关注的是这种设计元素的实现,尤其是那些具有圆角和虚线边框的矩形。圆角矩形在UI设计中非常常见,它们可以为按钮、卡片或其他界面组件增添柔和与现代感,而虚线...

    swift-JMRoundedCorner-UIView设置不触发离屏渲染的圆角

    它在`draw(_ rect: CGRect)`方法中进行绘制,利用`CGContext`的`addRoundedRect`方法来绘制圆角矩形,然后使用`fill`或者`stroke`来填充或描边这个路径。这种方法的优点是,所有的绘制都在当前屏幕的上下文中完成,...

    iOS应用开发中UIView添加边框颜色及设置圆角边框的方法

    因为默认情况下,视图的内容会被裁剪到其边界框内,所以即使设置了圆角,内容仍会显示为矩形。为了使圆角生效,我们需要开启`masksToBounds`属性: ```objc frameView.layer.masksToBounds = YES; // 开启边界裁剪...

    iOS设置圆角的三种方法

    本文实例为大家分享了iOS设置圆角的三种方式,供大家参考,具体内容如下 第一种方法:通过设置layer的属性 最简单的一种,但是很影响性能,一般在正常的开发中使用很少. UIImageView *imageView = [[UIImageView alloc...

    UIView+RectCorner

    首先,`UIView+RectCorner.h`文件中会声明一些方法,这些方法用于设置`UIView`的各个角落的圆角半径。可能的方法包括: 1. `- (void)roundCorners:(UIRectCorner)corners radius:(CGFloat)radius;` 这个方法允许...

    实现圆角图片或圆角矩形功能

    在iOS开发中,实现圆角图片或圆角矩形功能是一项常见的需求,特别是在设计美观的用户界面时。本文将详细讲解如何通过源码`radius`,结合`SDWebImage`库来实现这一功能,适用于动态加载网络图片以及处理本地静态图片...

    iOS UITablecell画圆角

    Core Graphics是Apple的2D绘图框架,我们可以利用其提供的API来手动绘制具有圆角的矩形。在`UITableViewCell`的`layoutSubviews`方法中,可以获取到内容视图并设置其边框和圆角: ```swift override func ...

    UIView-BezierCurve:圆角化UIView的各个角

    圆角化`UIView`的典型方法是通过设置`layer`的`cornerRadius`属性,但这样只能实现所有四个角相同半径的圆角。如果我们想为每个角设置不同的圆角半径,就需要利用`UIBezierPath`和`CAShapeLayer`。以下是一步步实现...

    Android图片 圆角效果 椭圆效果

    在Java中,我们可以使用`Bitmap.createBitmap()`创建一个新的Bitmap,然后利用`Canvas`和`Paint`对象绘制圆角矩形或椭圆形。首先,我们需要创建一个`RectF`对象,设置其宽高为原Bitmap的宽高,并指定圆角半径。然后...

    Swift-高效设置圆角

    这里,我们先创建了一个圆形的路径,然后将其添加到原来的圆角矩形路径后面,最终的path即为带有镂空的圆角矩形。 另一种实现镂空效果的方法是使用UIGraphicsBeginImageContext和CGContext,但这通常在绘制复杂的...

    圆角的视图

    在iOS中,可以继承`UIView`,重写`draw(_ rect: CGRect)`方法,使用`CGContext`来绘制圆角矩形。在Android中,可以继承`View`,重写`onDraw(Canvas canvas)`方法,使用`canvas.drawRoundRect()`来绘制。 标签"圆角...

    UIView+ResetSize

    在iOS开发中,UIView是构建用户界面的基本元素,它代表屏幕上的一个矩形区域,用于显示内容和响应用户的交互。为了提高代码的可读性和开发效率,开发者常常会使用Category或者Extension来为现有的类添加额外的功能。...

    图片圆角demo

    在实现图片圆角时,我们可以通过Core Graphics创建一个矩形路径,然后设置该路径的圆角属性,最后在这个路径上绘制图片。 - **CGContextCreate**: 创建一个图形上下文,用于绘图。 - **...

    ios-头像切圆角的另外两种方式.zip

    3. 设置CAShapeLayer的path属性为这个圆角矩形路径。 4. 将imageView的layer.mask属性设置为创建的CAShapeLayer,这样图片就会根据mask的形状显示,即变为圆形。 代码示例: ```swift let shapeLayer = ...

    手机右上角圆角动画导航代码,点击左上角图片可以查看导航菜单

    这个设计通常出现在手机应用的顶部,通过一个圆角矩形或圆形的图标,用户可以触发导航菜单,展示更多的操作选项。 首先,让我们详细了解一下“圆角动画”。在UI设计中,圆角是一种常见的视觉元素,它可以使界面看...

    cornerradius属性设置后边缘部分不可点击

    然而,问题在于,即使视觉上按钮的圆角部分看起来是可点击的,实际的触摸事件区域可能仍然遵循原始矩形形状。因此,当用户尝试点击圆角部分时,实际上并没有触发点击事件。为了解决这个问题,开发者需要扩展按钮的...

    IOS开发之为视图绘制单(多)个圆角实例代码

    以下是一个简单的例子,它创建了一个`UIView`并设置了其右上角和右下角的圆角: ```swift let actionView = UIView(frame: CGRect(x: 0, y: 0, width: 200, height: 200)) let maskPath = UIBezierPath(roundedRect...

    iOSCornerRadius失效的解决方案.docx

    这是因为如果不裁剪超出边界的内容,那么设置`cornerRadius`可能不会按预期工作,因为圆角的部分可能会超出原始矩形的范围。 - **与`clipsToBounds`的区别:** `clipsToBounds`是`UIView`的属性,而`masksToBounds`...

Global site tag (gtag.js) - Google Analytics