2012-12-06 118 views
10

我刚刚添加了一个UILabel组件到一个视图中,并试图使它成为一个圆角的UILabel。我一直在阅读与同一问题有关的一些问题和答案,但他们都说我必须更改源代码。在新的Xcode 4.5和iOS6中真的有必要吗?另外我不确定我是否能够看到主板生成的代码。带圆角的UILabel(Xcode 4.5和iOS 6)

任何帮助将不胜感激。

非常感谢, 马科斯

+0

请接受我或伊斯梅尔的答案,如果他们帮助你。我想获得我的名声和伊斯梅尔以及我很确定 –

回答

11

做出的UILabel圆角请执行以下操作:

#import <QuartzCore/QuartzCore.h> 

,那么你应该参考您的UILabel

yourLabel.layer.cornerRadius = 5; 

5只是一个例子,当然

+0

非常感谢。最后一个问题:是否有任何特定的地方添加此代码?我不确定是否有权访问由Xcode Interface Builder生成的代码。控制器上有什么特殊的方法可以添加这些代码? – vilelam

+0

那么,你应该有一个插座变量UILabel *与你在IB中创建的连接。你可以在任何你想要的地方设置这个变量的角半径。 viewDidLoad或viewWillAppear应该正常工作 –

1

您需要#import "QuartzCore/QuartzCore.h"在某处你的代码做

label.layer.cornerRadius = 2.0; // or whatever radius you want 
+0

非常感谢。最后一个问题:是否有任何特定的地方添加此代码?我不确定是否有权访问由Xcode Interface Builder生成的代码。控制器上有什么特殊的方法可以添加这些代码? – vilelam

+0

这取决于你的细胞在哪里。你需要在你的控制器上有一个引用,如果它是由接口生成器创建的,那么你应该在你的'viewDidLoad'方法上加上这个。 – Ismael

+0

非常好!我能够做到这一点。我将代码添加到viewDidLoad方法中,并且工作顺利。 – vilelam

-1

是的,它不但可以通过添加代码完成的,由其他人略。不幸的是Interface Builder现在无法做到这一点。

+0

@PradeepReddyKypa在Xcode 4.5中? –

12

您可以在Interface Builder中完成所有操作。
XCode中,选择您的.xib文件(或您的故事板)以打开Interface Builder。点击您UILabel并打开身份检查(如果你不知道它在哪里,去Xcode的帮助菜单,键入“身份检查”)。点击用户自定义运行下的加号按钮属性窗格中,并写入layer.cornerRadius关键路径,为价值选择Number为的类型和5(或任何其他数字)。
如果你现在运行你的项目,你应该得到一个圆角的UILabel

+2

这只适用于选中“剪辑子视图”(我在Xcode 6上) – mnl

1

您可以在界面构建器中通过将layer.cornerRadius添加为“Identity Inspector”下的“用户定义的运行时属性”中的一个键来完成。

1

的quartzcore框架添加到您的项目构架

import "QuartzCore/QuartzCore.h" 

使用下面的代码 -

label.layer.cornerRadius = 2.0; // radius depend on how much rounded corner you want. 
label.clipsToBounds = TRUE; 
0

,我想我会分享一个稍微好一点的方式来做到这一点对新的开发环境(与SWIFT) 。使用以下代码,您将在界面生成器中出现一个特殊字段,让您设置角落半径。新的分款出现所谓的“查看”属性检查器中,在那里被称为“角半径”的项目

#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