Personnalisation de UIPickerView (arrière-plan et de l'espacement)

Je voudrais changer le fond blanc dans un UIPickerView à une image de mon propre.

Est-ce possible?

Aussi, j'ai réussi à obtenir mon UIPickerView de défilement à l'horizontale au lieu de verticale. Maintenant, je voudrais savoir si il existe un moyen de régler l'espacement entre deux lignes de sélecteur de vue?

J'ai joint une image pour montrer ce que je veux dire.

C'est mon code:

- (void)viewDidLoad
{
[super viewDidLoad];
//Do any additional setup after loading the view from its nib.
arrayDays = [[NSMutableArray alloc] init];
[arrayDays addObject:@"ONSDAG"];
[arrayDays addObject:@"TORSDAG"];
[arrayDays addObject:@"FREDAG"];
[arrayDays addObject:@"LØRDAG"];
arrayDates = [[NSMutableArray alloc] init];
[arrayDates addObject:@"29. JUNI"];
[arrayDates addObject:@"30. JUNI"];
[arrayDates addObject:@"1. JULI"];
[arrayDates addObject:@"2. JULI"];
pickerViewDay = [[UIPickerView alloc] initWithFrame:CGRectZero];
[pickerViewDay setDelegate:self];
[pickerViewDay setShowsSelectionIndicator:NO];
CGAffineTransform rotate = CGAffineTransformMakeRotation(-M_PI/2);
rotate = CGAffineTransformScale(rotate, 0.25, 2.0);
[pickerViewDay setTransform:rotate];
[pickerViewDay setCenter:CGPointMake(self.view.frame.size.width/2, (pickerViewDay.frame.size.height/2)-3)];
[self.view addSubview:pickerViewDay];
//Adding selection indicator to pickerview
UIImage *selectorImage = [UIImage imageNamed:@"DayPickerView_SelectionIndicator.png"];
UIView *customSelector = [[UIImageView alloc] initWithImage:selectorImage];
[customSelector setFrame:CGRectMake(0, 0, 120, 74)];
[customSelector setCenter:CGPointMake(self.view.frame.size.width/2, customSelector.frame.size.height/2)];
[self.view addSubview:customSelector];
[customSelector release];
//Adding background to pickerview
UIImage *backgroundImage = [UIImage imageNamed:@"DayPickerView_Background.png"];
UIView *custombackground = [[UIImageView alloc] initWithImage:backgroundImage];
[custombackground setFrame:CGRectMake(0, 0, 320, 74)];
//[self.view addSubview:custombackground];
[custombackground release];
}
- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view {
UIView *viewRow = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 150, 80)];
CGAffineTransform rotate = CGAffineTransformMakeRotation(3.14/2);
rotate = CGAffineTransformScale(rotate, 0.25, 2.0);
//Date
CGRect rectDate = CGRectMake(30, 0, 150, 80);
UILabel *date = [[UILabel alloc]initWithFrame:rectDate];
[date setTransform:rotate];
[date setText:[arrayDates objectAtIndex:row]];
[date setFont:[UIFont fontWithName:@"Arial-BoldMT" size:37.0]];
[date setShadowColor:[UIColor whiteColor]];
[date setShadowOffset:CGSizeMake(0, -1)];
[date setTextAlignment:UITextAlignmentCenter];
[date setBackgroundColor:[UIColor clearColor]];
[date setClipsToBounds:YES];
[viewRow addSubview:date];
//Day
CGRect rectDay = CGRectMake(-30, 0, 150, 80);
UILabel *day = [[UILabel alloc]initWithFrame:rectDay];
[day setTransform:rotate];
[day setText:[arrayDays objectAtIndex:row]];
[day setFont:[UIFont fontWithName:@"Arial-BoldMT" size:21.0]];
[day setTextColor:[UIColor colorWithRed:0.35 green:0.35 blue:0.35 alpha:1]];
[day setTextAlignment:UITextAlignmentCenter];
[day setBackgroundColor:[UIColor clearColor]];
[day setClipsToBounds:YES];
[viewRow addSubview:day];
return viewRow;
}
- (NSString *)pickerView:(UIPickerView *)thePickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component {
return [arrayDays objectAtIndex:row];
}
- (NSInteger)pickerView:(UIPickerView *)thePickerView numberOfRowsInComponent:(NSInteger)component {
return [arrayDays count];
}

Personnalisation de UIPickerView (arrière-plan et de l'espacement)

EDIT 1

Pour RickiG (sur le fond):

Personnalisation de UIPickerView (arrière-plan et de l'espacement)

EDIT 2

Pour RickiG:

Personnalisation de UIPickerView (arrière-plan et de l'espacement)

InformationsquelleAutor simonbs | 2011-04-21