地図上に注釈付きの情報を表示し、地図の下に非常に単純なカスタム日付ピッカーを表示したいと考えています。
nibでカスタム ビューを作成し、それを UIView のインスタンスに関連付けました。
この同じクラスには、nib からビュー インスタンスをロードする関数が含まれています。
+(id)loadCustomDatePicker
{
CustomDatePicker *customDatePicker = [[[NSBundle mainBundle] loadNibNamed:@"CustomDatePicker" owner:nil options:nil] lastObject];
if ([customDatePicker isKindOfClass:[CustomDatePicker class]])
return customDatePicker;
else
return nil;
}
これは、インターフェースビルダーからの私のスクリーンショットです。
私のView ControllerのviewDidAppearメソッドでは、このコードを使用してカスタムビューをロードしています
CustomDatePicker *customDatePicker = [CustomDatePicker loadCustomDatePicker];
[self.view addSubview:customDatePicker];
[self.view bringSubviewToFront:customDatePicker];
customDatePicker.frame = CGRectMake(0, 375, 320, 40);
シミュレーションのスクリーンショットは次のとおりです。
カスタム ビューのサイズは、nib ファイルで 320 x 40 に設定されています。背景は透明です。
ここに問題があります:
シーンの高さは 504 なので、私のコードは
customDatePicker.frame = CGRectMake(0, 464, 320, 40);
しかし、これを実装すると、マップしか表示されません。(0,400)でも(0,420)でも動きません。試行錯誤して(0,375)を使いました。
視覚的には私の目的は達成されたように見えます。しかし、(0,375) が動作するはずがないのに、なぜ動作するのかわかりません。