是否有创建圆角 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 。具体来说:
- 创建一个
UIView
子类并将其命名为RoundRectView
. - 在
RoundRectView
的drawRect:
方法,使用核心图形调用(如边缘的 CGContextAddLineToPoint() 和圆角的 CGContextAddArcToPoint() )围绕 View 边界绘制路径。 - 创建一个
UILabel
实例并使其成为 RoundRectView 的 subview 。 - 将标签的框架设置为 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/