화면 공간이 부족하기 때문에 사용자가 휠을 돌릴 때 UIPickerView에서 이미지의 설명 (UILabel이 회전 할 때 pickerView에 나타남)을 표시하려고합니다. 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 오프셋이 필요합니다. 이는 [row]가 UIPickerView의 마지막 객체 (사용자가 회전 할 때)와 UIPickerView의 최상위 객체 (사용자가 회전 할 때)에 해당하지만 중앙 객체는 해당하지 않음을 의미합니다. UIPickerView 마지막 개체와 중앙 개체 사이의 차이는 -2입니다. 나는 그 질문을 분명히하는 데 도움이되기를 바랍니다. – blackhawk4152