在我的应用程序中,我是一个视图控制器,它调用几个视图。所有这些视图都是UIViews。这工作正常,但不是在任何情况下。其中一个被调用的视图有一些标签,textfields和两个UITextViews。一切都正确显示,但UITextViews。该观点被称为那样:UITextView屏幕上未显示
[[self view] addSubview:tasteView];
//tasteView = [[TasteView alloc] init];
[self setCurrentView:tasteView];
我调用视图的init方法来显示UITextViews:
编辑:菲利普·米尔斯的评论这是稍微改变了! Init不再被调用。
- (id)init
{
if (self)
{
[tv1 setNeedsDisplay];
CGRect frame = tv1.frame;
frame.size.height += 1;
tv1.frame = frame;
}
return self;
}
当我看到setNeedsDisplay没有效果,我改变了corresponsing帧的大小,以强制重绘。不幸的是,这也没有效果。 顺便说一句,该视图最初装在视图控制器的viewDidLoad中:
- (void)viewDidLoad
{
[super viewDidLoad];
[self setCurrentView:placeholder];
[self configureView];
wineryView = [self loadWineryView];
wineView = [self loadWineView];
tasteView = [self loadTasteView];
}
用于装载观点方法是这样的:
- (UIView *) loadTasteView
{
NSArray *nibViews = [[NSBundle mainBundle] loadNibNamed:@"TasteView" owner:self options:nil];
UIView *tView;
for (id view in nibViews)
{
if ([view isKindOfClass:[TasteView class]])
{
tView = (TasteView*) view;
}
}
return tView;
}
我不知道为什么这些UITextViews不显示。我忘了什么吗?要显示真是应有尽有,这里有我在InterfaceBuilder中所做的连接:
有谁知道我做错了什么,可以帮助我吗?
我加载FRIM笔尖通常认为
。在代码中创建视图只是一个奇怪的“帮手”,因为我想在某个时候调用setNeedsDisplay。我想我会通过调用addSubview将视图添加到层次结构中。我必须以另一种方式做到这一点吗? – usermhoaddSubView
后我不能评论你应该使用什么方法,而不知道应用程序的结构,但我的第一点是,你不能添加子视图,直到它存在,所以你写了什么'tasteView'包含作为子视图和**然后**创建一个不会被添加的新的。 –
你是绝对正确的:通过调用alloc和init我创建了一个从未添加的新视图!所以我在调用视图后评论说它添加了代码。不幸的是没有效果。我将根据该更改编辑上述代码! – usermho