0

aがタップされたUIPickerViewときにビューに a を追加しています。を単独でUILabel追加していたときは、正常に機能しました。UIPickerView

static const CGFloat HMCMeasurePickerHeight = 200.0;
CGRect measurePickerFrame = CGRectMake(0.0,
                                       CGRectGetHeight(self.view.window.bounds) - HMCMeasurePickerHeight,
                                       CGRectGetWidth(self.view.window.bounds),
                                       HMCMeasurePickerHeight);
UIPickerView *picker = [[UIPickerView alloc] initWithFrame:measurePickerFrame];
picker.dataSource = self;
picker.delegate = self;
picker.showsSelectionIndicator = YES;
[self.view addSubview:picker];

ただし、ツールバーが必要だったので、次のようにラップしましたUIView

static const CGFloat HMCMeasurePickerAccessoryHeight = 44.0;
static const CGFloat HMCMeasurePickerHeight = 200.0;
CGRect measurePickerSuperviewFrame = CGRectMake(0.0,
                                                CGRectGetHeight(self.view.window.bounds) - HMCMeasurePickerHeight - HMCMeasurePickerAccessoryHeight,
                                                CGRectGetWidth(self.view.window.bounds),
                                                HMCMeasurePickerAccessoryHeight);
UIView *measurePicker = [[UIView alloc] initWithFrame:measurePickerSuperviewFrame];
CGRect measurePickerAccessoryFrame = CGRectMake(0.0,
                                                0.0,
                                                CGRectGetWidth(self.view.window.bounds),
                                                HMCMeasurePickerAccessoryHeight);
UIToolbar *measurePickerAccessory = [[UIToolbar alloc] initWithFrame:measurePickerAccessoryFrame];
measurePickerAccessory.barStyle = UIBarStyleBlackTranslucent;
UIBarButtonItem *rightAlignSpacer = [[UIBarButtonItem alloc]
                                     initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace
                                     target:nil
                                     action:nil];
UIBarButtonItem *doneButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone
                                                                            target:self
                                                                            action:@selector(dismissMeasurePicker:)];
measurePickerAccessory.items = @[rightAlignSpacer, doneButton];
[measurePicker addSubview:measurePickerAccessory];
CGRect measurePickerFrame = CGRectMake(0.0,
                                       HMCMeasurePickerAccessoryHeight,
                                       CGRectGetWidth(self.view.window.bounds),
                                       HMCMeasurePickerHeight);
UIPickerView *picker = [[UIPickerView alloc] initWithFrame:measurePickerFrame];
picker.dataSource = self;
picker.delegate = self;
picker.showsSelectionIndicator = YES;
[measurePicker addSubview:picker];
[self.view addSubview:measurePicker];

今、スクロールしようとしてUIPickerViewも何も起こりません。追加した [完了] ボタンを正常にタップできますが、UIPickerView応答していないだけです。設定picker.userInteractionEnabled = YESしてみましたが、効果はありませんでした(最初の例では、デフォルトのように見えYESます)。

4

1 に答える 1

1

問題は、メジャーピッカーのフレームサイズがピッカーよりも小さいことだと思います。この行で確認することをお勧めします。measurePicker の最終フレームを NSLog して、返される幅と高さを確認します。

于 2013-08-14T15:09:06.653 に答える