UITextView未显示在屏幕上

时间:2013-01-05 12:22:27

标签: ios uiview uitextview

在我的应用程序中,我可以调用多个视图的视图控制器。所有这些观点都是UIViews。这很好,但不是在所有情况下。其中一个被调用的视图有一些标签,文本字段和两个UITextViews。一切都正确显示,但UITextViews。视图以这种方式调用:

[[self view] addSubview:tasteView];
//tasteView = [[TasteView alloc] init];
[self setCurrentView:tasteView];

我调用视图的init方法来显示UITextViews:

编辑:在Phillip Mills的评论之后,这有点变化了!不再调用Init。

- (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中建立的连接: enter image description here

enter image description here

有谁知道我做错了什么可以帮助我?

2 个答案:

答案 0 :(得分:0)

如果您要在代码中创建视图(您的第一个示例),allocinit视图之前尝试将其添加为子视图。

如果您从另一个笔尖(最后一个代码部分)加载它,您仍然需要将它添加到视图层次结构中。

答案 1 :(得分:0)

我认为您的初始代码应该是这样的:

tasteView = [[TasteView alloc] init];
[[self view] addSubview:tasteView];
[self setCurrentView:tasteView];
分配后

addSubView

希望它可以帮到你