我刚刚在视图中添加了一个 UILabel 组件,并且正在尝试将其设置为圆角 UILabel。我一直在阅读与同一问题相关的一些问题和答案,但他们都说我必须更改源代码。在新的 Xcode 4.5 和 iOS6 中真的有必要吗?另外我不确定我是否能够看到 mainstoryboard 生成的代码。
任何帮助将不胜感激。
非常感谢,马科斯
我刚刚在视图中添加了一个 UILabel 组件,并且正在尝试将其设置为圆角 UILabel。我一直在阅读与同一问题相关的一些问题和答案,但他们都说我必须更改源代码。在新的 Xcode 4.5 和 iOS6 中真的有必要吗?另外我不确定我是否能够看到 mainstoryboard 生成的代码。
任何帮助将不胜感激。
非常感谢,马科斯
您可以在 Interface Builder 中完成所有操作。
在XCode中,选择您的.xib
文件(或您的故事板)以打开 Interface Builder。单击您的UILabel
并打开身份检查器(如果您不知道它在哪里,请转到 XCode 的帮助菜单并输入“身份检查器”)。单击User Defined Runtime Attributes窗格下的加号按钮,并layer.cornerRadius
为Key Path编写,Number
为Type选择,和5
(或任何其他数字)为Value。
如果你现在运行你的项目,你应该得到一个圆角的UILabel
.
要制作圆角的 UILabel,请执行以下操作:
#import <QuartzCore/QuartzCore.h>
那么你应该参考你的 UILabel
yourLabel.layer.cornerRadius = 5;
5 只是一个例子,当然
你需要#import "QuartzCore/QuartzCore.h"
在你的代码的某个地方做
label.layer.cornerRadius = 2.0; // or whatever radius you want
您可以在界面生成器中通过添加 layer.cornerRadius 作为“身份检查器”下的“用户定义的运行时属性”中的键之一来执行此操作。
将quartzcore 框架添加到您的项目框架中
import "QuartzCore/QuartzCore.h"
使用以下代码 -
label.layer.cornerRadius = 2.0; // radius depend on how much rounded corner you want.
label.clipsToBounds = TRUE;
我想我会为更新的开发环境(使用 Swift)分享一种更好的方法。使用以下代码,您会在 Interface Builder 中看到一个特殊字段,可让您设置角半径。属性检查器中出现一个名为“视图”的新子部分,其中有一个名为“角半径”的项目
#if !os(watchOS)
// watchOS UI designer allows setting of a corner radius. For
// iOS and tvOS, an Interface Builder extension is needed.
extension UIView {
@IBInspectable var cornerRadius: CGFloat {
get {
return layer.cornerRadius
}
set {
layer.cornerRadius = newValue
layer.masksToBounds = newValue > 0
}
}
}
#endif
是的,它只能通过添加代码来完成,这里其他人提到过。不幸的是,Interface Builder 现在不能这样做。