私のアプリでは、複数のビューを呼び出すビュー コントローラーがあります。これらのビューはすべて UIView です。それはうまくいきますが、すべての場合ではありません。呼び出されるビューの 1 つには、いくつかのラベル、テキスト フィールド、および 2 つの 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 で作成した接続を次に示します。
誰かが私が間違っていたことを知っていて、私を助けることができますか?