2012-03-21 7 views
0

私はUIPickerViewをサブクラス化してもう少し機能を追加しました(私は99%はこの質問とは関係ありません)。 drawRect私は、ツールバーを少し簡単に解除するためのツールバーを追加しました。問題は、UIToolbarもツールバーのUIBarButtonItemも触れません。それは、タッチがその背後のビュー(UITableView)に転送される点で、ビューが「不可視」であるかのようです。私は、ピッカーとツールバーの両方を保持する「コントロール」ビューを作ることができます。しかし、別のビューを作成せずにこれを行う方法があるかどうかを知りたいだけでしたか?カスタムUIPickerView上のUIToolbarは接触しません

- (void)drawRect:(CGRect)rect 
{ 

    if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { 

     pickerToolbar = [[UIToolbar alloc] initWithFrame: CGRectMake(0, 0, self.frame.size.width, 40)]; 


     UIBarButtonItem *closeButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem: UIBarButtonSystemItemDone target: self.delegate action: closeAction]; 

     [pickerToolbar setItems: [NSArray arrayWithObject: closeButton]]; 

     [self addSubview: pickerToolbar]; 
    } 
} 

がここに写真です:

は、ここに私のdrawRectコードです

My custom UIPicker

答えて

1

は、これを行うことはありませんありません。ピッカーが描かれるたびに新しいサブビューを追加しています!

ピッカービューがテキストフィールドの入力ビューである場合は、ツールバーを作成して入力アクセサリビューとして追加するだけです。それはあなたのためにピッカーの上に表示されます。これは、この動作を実現するための標準的な方法です。

+0

私はそれについて考えている、あなたは絶対に儀式です、それは本当に本当に馬鹿です。しかし、入力アクセサリービューは読み取り専用ですので、私はプロパティを再定義すると思います。私はそれを試してみるよ、ありがとう! – pob21

+0

これは実際に私が探していた結果を私に与えることはありませんでしたが、あなたの助けにたくさん感謝します! – pob21

+1

入力アクセサリビューは読み取り専用ではありません。多分、私ははっきりしませんでした。ピッカーを使用して内容を編集するテキストフィールドがあります。このテキストフィールドには、入力ビュー(標準UIPickerViewビュー)と入力アクセサリビュー(ツールバー)の2つのプロパティがあります。これらを設定すると、システムによってそれらがまとめられます。なぜあなたはピッカーをサブクラス化していますか? – jrturton

関連する問題