ios - 如何在 iPhone 上创建圆角 UILabel?

标签 ios objective-c cocoa-touch uilabel rounded-corners

是否有创建圆角 UILabel 的内置方法?如果答案是否定的,人们将如何创建这样一个对象?

最佳答案

iOS 3.0 及更高版本

iPhone OS 3.0 及更高版本支持 cornerRadius CALayer 上的属性(property)类(class)。每个 View 都有一个 CALayer您可以操作的实例。这意味着您可以在一行中获得圆角:

view.layer.cornerRadius = 8;

您需要#import <QuartzCore/QuartzCore.h>并链接到 QuartzCore 框架以访问 CALayer 的 header 和属性。

iOS 3.0 之前

我最近使用的一种方法是创建一个 UIView 子类,该子类只绘制一个圆角矩形,然后在其中创建 UILabel 或 UITextView subview 。具体来说:

  1. 创建一个 UIView子类并将其命名为 RoundRectView .
  2. RoundRectViewdrawRect:方法,使用核心图形调用(如边缘的 CGContextAddLineToPoint() 和圆角的 CGContextAddArcToPoint() )围绕 View 边界绘制路径。
  3. 创建一个 UILabel实例并使其成为 RoundRectView 的 subview 。
  4. 将标签的框架设置为 RoundRectView 边界的几个像素。 (例如,label.frame = CGRectInset(roundRectView.bounds, 8, 8);)

如果您创建通用 UIView,然后使用检查器更改其类,则可以使用 Interface Builder 将 RoundRectView 放置在 View 上。在编译和运行应用程序之前,您不会看到矩形,但至少您可以放置​​ subview 并将其连接到 socket 或操作(如果需要)。

关于ios - 如何在 iPhone 上创建圆角 UILabel?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/510382/

相关文章:

iphone - 在设备上测试 iPhone 应用程序的步骤(已创建配置文件/证书)

objective-c - 如何在不直接使用 zlib.dylib 的情况下使用 Zlib 压缩数据?

iphone - 滚动 UIDatepicker 滚轮时出现错误位置

ios - 操作系统版本低于 iOS 11 的用户的应用内评分

objective-c - 通过 url 设置 MKPinAnnotationView 图片

objective-c - 使用 localizedStandardCompare 对 NSURL 进行排序的性能

ios - UITableView,如何以编程方式更改整个表格 View 的宽度和高度?

iphone - iPhone中的自定义音频播放器

objective-c - 如果我强行将分配对象的指针指向 nil,ARC 会做什么?

iPhone - 当用户触摸状态栏时,使 UIWebView subview 滚动到顶部(iOS 4)