[英]Connect a UILabel in Interface Builder and XCode?
我正在尝试做一些简单的事情,例如在 XCode 和 IB 中向视图添加标签,但我不知道该怎么做。 我在网上找到的所有示例都是针对旧版 IB 的,因此说明不正确。
我的 .xib 文件上有一个标签,在我的 Controller.h 文件中,我有一个 IBOutlet UILabel 声明了一个属性设置。
在我的 Controller.m 文件中,我合成了该属性。
在 Interface Builder 中,我终生无法弄清楚如何将代码中的标签与 .xib 上的标签相关联。 每当我尝试将连接拖动到文件所有者时,唯一显示的选项是“查看”。
如果我查看 Interface Builder 的 Library Window 下的 Controller,标签在 Outlets 下显示为 UILabel。 我很确定它曾经是“id”类型,但它会自动显示为 UILabel,如果我尝试添加一个“id”,它也不起作用。
有人可以指点我来解释这个愚蠢的事情吗? 使标签具有文本应该不难。
假设您的视图称为 ExampleView。 单击文件所有者,然后按 ⌘+4。 这将突出显示身份框。 确保班级名称与您的班级名称相同。
保存并关闭 Interface Builder,然后进入 Xcode 并验证:
// ExampleViewController.h
#import <UIKit/UIKit.h>
@class ExampleViewController;
@interface ExampleViewController : UIViewController {
IBOutlet UILabel *label;
}
@property (retain, nonatomic) IBOutlet UILabel *label;
@end
在您的 .m 文件中:
// ExampleViewController.m
#import "ExampleViewController.h"
@implementation ExampleViewController
@synthesize label;
然后保存 xcode 文件并打开您的 ExampleView。 将标签拖到视图上。 您不应该将该标签连接到文件所有者。
而是单击文件所有者。 HIT ⌘+2 这将打开连接框。 然后你会看到你的插座。 单击并将其连接到您的标签。
确保您的财产线如下所示:
@property (nonatomic, retain) IBOutlet UILabel *label;
在 Interface Builder 中将标签的类型保留(或设置)为UILabel
。 如果这不起作用,请尝试 File -> Reload All Class Files in Interface Builder。 您的代码看起来不错,但 CardNameLabel 应该以小写的“c”开头。
试试这个:单击 File's Owner 图标将其选中,然后转到 Inspector's Identity 选项卡(第四个选项卡)并检查Class
设置的值。 我的猜测是它当前设置为UIViewController
。
由于具有您声明的IBOutlet
的类是(或应该是) UIViewController
的子类,因此您需要将类名更改为您的子类的名称(例如, MyController
或它当前命名的任何名称)。
假设您有一个 viewController 和一个包含 UILabel 的 xib 文件。 连接 UiLabel(也是 xib 文件)你的 viewController 的步骤是:
1) 在头文件中,为其创建 UiLabel 对象和属性
IBOutlet UILabel *label;
@Property (Nonatomic, retain) IBOutlet UILabel *label;
并将其同步到实现文件中
2) 在 Interface Builder 中打开您的 xib 文件
双击“文件所有者”,然后在弹出窗口的下拉列表中选择 viewController 将您的 xib 文件连接到控制器
3) 右键单击文件所有者,在弹出对话框中:
=> 现在标签和 xib 文件上的视图已连接到您的控制器
以下是快速将 UILabel 连接到故事板的方法:
使用顶部的栏,在文件查看器的一侧选择故事板,在另一侧选择视图控制器。
您已成功将故事板元素链接到您的代码。
您可以按照本教程观看有关如何将故事板元素连接到代码的视频。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.