スクリーンスペースが不足しているため、ユーザーがホイールを回転させたときにUIPickerViewでイメージの説明(UILabelがピッカービューに表示されます)が表示されます。 viewForRow:を使用してスピンを検出し、説明を表示します。問題は、これまでに書いたコードを使って、最初の2行と最後の2行の説明を表示できないということです。すべてのヘルプをいただければ幸いですスピン時にUIPickerViewの中央の行を検出する方法
- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view
{
UIImageView *image=[[[UIImageView alloc]initWithImage:[UIImage imageNamed:[zodiacSigns objectAtIndex:row]]]autorelease];
selectedZodiac.frame=CGRectMake(80, 80, 50, 50);
selectedZodiac.hidden=NO;
@try {
//Here -2 is offset of the view in central row
selectedZodiac.text=[zodiacSigns objectAtIndex:row-2];
}
@catch (NSException *exception) {
NSLog(@"Exception caught");
}
@finally {
}
if([yourZodiacPicker selectedRowInComponent:0]!=0)
{
[self.view insertSubview:selectedZodiac aboveSubview:self.view];
}
NSLog(@"reuseView");
return image;
}
: はここに私のコードです!
誰かが、ユーザーがホイールを上または下に回転させているかどうかを検出する方法を教えてもらえますか?私はそこでそれを処理します – blackhawk4152
-2オフセットで何をしようとしているのか分かりません。 -2行を削除して中心行の説明を表示してみませんか?あなたはあなたの問題を詳述しようと思いますか? –
@Pol Mum uForickerviewに新しいビューがプッシュされたときにのみviewForRow:メソッドが呼び出されるため、-2 offsetが必要です。つまり、[row]はUIPickerViewの最後のオブジェクト(ユーザーがスピンしたとき)とUIPickerViewの最上位のオブジェクト(ユーザーがスピンしたとき)に対応しますが、中央オブジェクトは対応しません。 UIPickerViewの終わりにある最後のオブジェクトと中央オブジェクトの間の差は-2です。私はそれが問題を解決するのを助けることを望む。 – blackhawk4152