Ios 访问自定义UIVIew中的属性

Ios 访问自定义UIVIew中的属性,ios,objective-c,uiview,uilabel,Ios,Objective C,Uiview,Uilabel,我用一堆标签创建了自定义UIView。label1,label2 UIView *testContentView = [[[UINib nibWithNibName:@"testContentView" bundle:nil] instantiateWithOwner:nil options:nil] objectAtIndex:0]; 如何访问标签和设置文本?您需要在界面上定义它们 @interface TestContentView : UIView @property (weak, n

我用一堆标签创建了自定义UIView。label1,label2

UIView *testContentView = [[[UINib nibWithNibName:@"testContentView" bundle:nil] instantiateWithOwner:nil options:nil] objectAtIndex:0];

如何访问标签和设置文本?

您需要在界面上定义它们

@interface TestContentView : UIView

@property (weak, nonatomic) IBOutlet UILabel *label1;
@property (weak, nonatomic) IBOutlet UILabel *label2;

@end
然后

testContentView.label1.text = @"foo";
testContentView.label2.text = @"bar";
编辑


在属性中添加了
IBOutlet
,因为您使用的是NIB,您还需要在Interface Builder中连接这些属性。

为了访问自定义属性,您需要将UIView强制转换为TestContentView

TestContentView *testContentView = (TestContentView *)[[[UINib nibWithNibName:@"testContentView" bundle:nil] instantiateWithOwner:nil options:nil] objectAtIndex:0];

它不起作用,因为它已被实例化为UIVIew而不是TestContentView。如果正确,则需要使用UIVIew的自定义子类。很抱歉忽略了那个简单的细节。我猜我假设您有一个名为
TestContentView
的子类,因此我的接口示例是
@interface TestContentView:UIView
,我不确定您在说什么。不过,我更新了答案,以解决您正在使用NIB的问题。底线是您需要UIView的一个子类来向其添加属性。