テーブルビューでピッカービューを表示

635 views
Skip to first unread message

m_yukio

unread,
Jul 18, 2010, 9:16:06 PM7/18/10
to cocoa-dev-japan
こんにちは、村上です。
iPhoneアプリケーションで、グルーピングされたテーブルビューで
セルを選択された際に、キーボードが表示されるとの同様に、画面
の下部にピッカービューを表示させようと思っています。


- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:
(NSIndexPath *)indexPath
{
NSUInteger index1 = [indexPath indexAtPosition:1U];
UIPickerView *pickerView = nil;
/* 3番目のセル以外が選択されると非表示 */
if (index1 != 2LU) {
pickerView = (UIPickerView *)[tableView viewWithTag:0x1234];
if (pickerView)
[pickerView removeFromSuperview];
}
/* 3番目のセルが選択されるとピッカービューを表示 */
else {
pickerView = [[[UIPickerView alloc]
initWithFrame:CGRectMake(0.0f, 416.0f - 216.0f, 320.0f,
216.0f)]
autorelease];
pickerView.dataSource = self;
pickerView.delegate = self;
pickerView.tag = 0x1234;
[self.view addSubview:pickerView];
}
}

これで上手く表示されたのですが、困った事があります。
ピッカービューで項目を選択しようを縦に指を動かすと、下のテーブルも
一緒に動いてしまい、上手く選択できません。

"[self.view addSubview:pickerView]"は、テーブビューのサブビューとして、
ピッカービューを追加という事だと思いますが、テーブルビューに追加す
ると一緒に移動するので、ここが問題なのでしょうか?

wang

unread,
Jul 18, 2010, 11:29:29 PM7/18/10
to cocoa-dev-japan
過去に何回か同じようなことをしているのでそちらを確認したのですが、UITableViewに直接つけてはいませんでした。
親のビューにつけています。つまり、self.view.superViewです。

UIWindowにつけても同じ結果だと思いますが確認していません。

m_yukio

unread,
Jul 19, 2010, 1:18:07 AM7/19/10
to cocoa-dev-japan
> 親のビューにつけています。つまり、self.view.superViewです。

ありがとうございます。これで上手く行きました。
Reply all
Reply to author
Forward
0 new messages