在我的应用程序中,我拥有一个调用多个视图的视图控制器。所有这些视图都是 UIView。这工作正常,但并非在所有情况下。被调用的视图之一有一些标签、文本字段和两个 UITextView。一切都正确显示,但 UITextViews。视图以这种方式调用:
[[self view] addSubview:tasteView];
//tasteView = [[TasteView alloc] init];
[self setCurrentView:tasteView];
我调用视图的 init 方法来显示 UITextViews:
编辑:菲利普米尔斯发表评论后,这略有改变!不再调用初始化。
- (id)init
{
if (self)
{
[tv1 setNeedsDisplay];
CGRect frame = tv1.frame;
frame.size.height += 1;
tv1.frame = frame;
}
return self;
}
当我看到 setNeedsDisplay 没有效果时,我更改了相应帧的大小以强制重绘。不幸的是,这也没有效果。顺便说一句,视图最初是在视图控制器的 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 中建立的连接:
有谁知道我做错了什么并且可以帮助我?