【发布时间】:2012-11-22 20:58:30
【问题描述】:
我正在尝试使用以编程方式加载的 NIB 更改标签。我创建了一个类MyView,其中包含一个名为myLabel 的UILabel*,但是当我使用MyView 时,我无法更改myLabel:
MyView.h
@interface MyView : UIView
{
UIView *view;
UILabel *myLabel;
}
@property (nonatomic, retain) IBOutlet UIView *view;
@property (nonatomic, retain) IBOutlet UILabel *myLabel;
MyView.m
@implementation MyView
@synthesize myLabel, view;
- (id)initWithFrame:(CGRect)frame
{
...
所以当我初始化MyView
UIView *myView = [[MyView alloc] initWithFrame:CGRectMake(0,0,100,100)];
我无法更改标签,因为myLabel 未识别:
myView.myLabel.text = @"New Label Text";
我知道我的逻辑或对UIView 的理解存在一些愚蠢的错误。
【问题讨论】:
-
"无法更改标签,因为 myLabel 未识别:" - 在哪里?您的代码中的最后两行是否位于同一位置?
-
我理解我的错误 - 将 *myView 声明为 UIView 而不是 MyView,因此我无权访问属性。