私はカスタム PickerView に取り組んでいます。ピッカーに 2 つのコンポーネント (時間、分) があり、分のコンポーネントの「0」を灰色にして選択できないようにしました。行が再利用されることを除いて、すべて正常に動作します。 .. グレーのフォントで「0」を表示する分コンポーネント (これが必要です) が、ピッカーをスクロールすると、「7、14、21 .....」がすべてグレーのフォントで表示されます!! ここに私のコードがあります
enter code here
- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view
{
if(component == HOURS) {
NSString *s = [self.arrayOfHours objectAtIndex:row];
return [pickerView viewForShadedLabelWithText:s ofSize:20 forComponent:0 rightAlignedAt:52 reusingView:view];
} else if (component == MINUTES) {
NSString *s = [self.arrayOfMinutes objectAtIndex:row];
return [pickerView viewForShadedLabelWithText:s ofSize:20 forComponent:1 rightAlignedAt:52 reusingView:view];
}
else return 0;
}
- (UIView *)viewForShadedLabelWithText:(NSString *)title ofSize:(CGFloat)pointSize forComponent:(NSInteger)component rightAlignedAt:(CGFloat)offset reusingView:(UIView *)view {
//.........................
label = [self shadedLabelWithText:title ofSize:pointSize :component];
//..........................
}
- (UILabel *)shadedLabelWithText:(NSString *)label ofSize:(CGFloat)pointSize :(NSInteger)component
{
UILabel *labelView = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, size.width, size.height)];
labelView.text = label;
if([label isEqual:@"0"] && component == 1) {
labelView.textColor = [UIColor grayColor];
}
return labelView;
}
1 - 行を再利用するためにピッカー ビューを回避する方法を教えてください。
2 - ピッカー ビューに行を円形/円形で表示するにはどうすればよいですか??