在我的應用程序中,我是一個視圖控制器,它調用幾個視圖。所有這些視圖都是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