Question

Is there a way to rotate an UIPickerView?

Was it helpful?

Solution

You can rotate a UIPickerView by applying a transform to a view containing it, much like I suggest in my answer here for scaling the picker.

OTHER TIPS

//example code placed in view did Load

[super viewDidLoad];
myPicker.delegate = self;
myPicker.dataSource = self;
myPicker.showsSelectionIndicator =YES;
myPicker.backgroundColor = [UIColor blackColor];

CGAffineTransform rotate = CGAffineTransformMakeRotation(3.14/2);

//original settings
//rotate = CGAffineTransformScale(rotate, 0.1, 0.8);

rotate = CGAffineTransformScale(rotate, 0.2, 1.65);
[self.myPicker setTransform:rotate];    

NSMutableArray *array = [[NSMutableArray alloc] initWithObjects:@"155", @"165", @"175", 
                  @"185", @"195", @"205", @"215", nil];
self.pickerData = array; 
[array release];

NSInteger TOTALITEM = [pickerData count];

UILabel *theview[TOTALITEM-1]; // + 1 for the nil
for (int i=1;i<=TOTALITEM-1;i++) {  
 theview[i] = [[UILabel alloc] init];
 theview[i].text = [NSString stringWithFormat:@"%d",i];
 theview[i].textColor = [UIColor blackColor];
 theview[i].frame = CGRectMake(0,0, 25, 25);
 theview[i].backgroundColor = [UIColor clearColor];
 theview[i].textAlignment = UITextAlignmentCenter;
 theview[i].shadowColor = [UIColor whiteColor];
 theview[i].shadowOffset = CGSizeMake(-1,-1);
 theview[i].adjustsFontSizeToFitWidth = NO;

 UIFont *myFont = [UIFont fontWithName:@"Helvetica" size:30];
[theview[i] setFont:myFont];
}


CGAffineTransform rotateItem = CGAffineTransformMakeRotation(-3.14/2);
rotateItem = CGAffineTransformScale(rotateItem, .5, 5);


for (int j=1;j<=TOTALITEM-1;j++) { 
    theview[j].transform = rotateItem;

 }

pickerData = [[NSMutableArray alloc] init];


for (int j=1;j<=TOTALITEM-1;j++) { 
[pickerData addObject:theview[j]];
}

Are you looking for - (void)selectRow:(NSInteger)row inComponent:(NSInteger)component animated:(BOOL)animated?

Or do you mean that you want to rotate the whole control 90 degrees, thus having wheels that spin to the left and right?

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top