1

UIPickerView と UIToolbar を使用しており、それを UIView に追加し、このビューをメイン ビューに追加しています。

addTimePicker=[[UIPickerView alloc]init];
[addTimePicker setFrame: CGRectMake(0, 20, 0, 0)];
addTimePicker.showsSelectionIndicator=YES;
addTimePicker.dataSource=self;
addTimePicker.delegate=self;

picker= [[UIView alloc] initWithFrame:CGRectMake(0, screenHeight/2+35, screenWidth, screenHeight/2+35)];
picker.backgroundColor=[UIColor whiteColor];
addToolbar=[[UIToolbar alloc] initWithFrame: CGRectMake(0, 0, self.view.frame.size.width, 45)];
addToolbar.barTintColor=[UIColor whiteColor];

 addToolbar.items = [NSArray arrayWithObjects:flexibleSpace,addAvailabilityButton, nil];
[picker addSubview: addTimePicker];
[picker addSubview: addToolbar];

[self.view addSubview:picker];

ただし、コントローラーを UIPickerViewDataSource および UIPickerViewDelegate プロトコルに準拠するように構成したにもかかわらず、私の

-(UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view

また

-(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component

また

-(NSAttributedString *)pickerView:(UIPickerView *)pickerView attributedTitleForRow:(NSInteger)row forComponent:(NSInteger)component

全く呼ばれません。

少し調べてみましたが、これが呼び出されない理由が見つからないようです。

numberOfRowsInComponent が呼び出されるたびにデフォルトの 3 を返し、numberOfComponentsInPickerView の場合は 5 を返しますが、データをログに記録すると、チェックしたコンポーネントの行が 0 であると表示されます。

新しいプロジェクトを使用してこのコードをテストしたところ、すべてのデータを表示するチャームのように機能します。

EDIT : さらにテストして、これがシーンです。

血まみれのUIDatePickerでさえ機能しません。日付ピッカーが持つべき要素が見えません。日付ピッカーをそのまま新しいビューに投げたり、自分のビューに接続したりしてみました。

特にこの 1 つのプロジェクトにのみ影響するため、これが世界的な問題なのかどうか疑問に思い始めています。

4

1 に答える 1

0

問題が何であるかを発見しました。

ピッカーも処理しようとした空のデータセットハンドラーhttps://github.com/dzenbot/DZNEmptyDataSetを使用していました。このハンドラーを削除すると、問題が解決しました。

私は自分の教訓を学びました、そして私はそれをよく学びました。サードパーティのライブラリは大きな賭けです。

乾杯。

于 2014-08-28T00:38:37.733 に答える