iphone,目标c,xcode

问题描述 投票:0回答:2

我定义了一个 UIView“RowOfThree”,其中有 3 个标签。我还定义了一个 UIView“Table”,其中有许多“Row”类型的对象。

以下代码位于对象“Table”内的方法中:

RowOfThree *rowOfThree = [[RowOfThree alloc] init];
[self addSubview:rowOfThree];

由于某种原因它没有添加视图。 我尝试在 IB 中和以编程方式定义“RowOfThree”中的标签,但它仍然不起作用。

iphone objective-c xcode
2个回答
1
投票

通常,UIView(及其子类)使用

initWithFrame:
进行初始化。也许您在自己的
init
实现中做到了这一点,我不知道,但很可能您的视图具有 {0,0,0,0} 的框架,因此高度为 0,宽度为 0。手动设置框架并告诉我们这是否有效。

CGRect newFrame = CGRectMake(0.f, 0.f, 200.f, 40.f);
RowOfThree *rowOfThree = [[RowOfThree alloc] initWithFrame:newFrame];
[self addSubview:rowOfThree];
[rowOfThree release];

0
投票

SanHalo 的答案很可能是正确的,但此外,如果您使用 Interface Builder,则不应直接初始化 nib 中定义的视图。如果这样做,则必须使用

initFromNib
而不是仅
init

© www.soinside.com 2019 - 2024. All rights reserved.