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

是否有创建圆角 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 或操作(如果需要)。

https://stackoverflow.com/questions/510382/

相关文章:

objective-c - xcode中Base SDK、iOS部署目标、Target、Projec

objective-c - 在objective-c中YES/NO,TRUE/FALSE和true/

iphone - 静态库中的 Objective-C 类别

ios - 如何手动弃用成员

iphone - 以编程方式切换到 TabBar 选项卡 View ?

objective-c - 为什么要使用 ivar?

objective-c - NSAttributedString 的 boundingRectWit

ios - 从 UITableView 单元格内的 url 异步加载图像 - 滚动时图像更改为错误图

objective-c - Xcode 5 : Code signing entitlement e

ios - 如何查看 NSString 是否以某个其他字符串开头?