Ios 访问自定义UIVIew中的属性
我用一堆标签创建了自定义UIView。label1,label2Ios 访问自定义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 *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的一个子类来向其添加属性。