Как изменить uipickerview в ландшафте? - PullRequest
1 голос
/ 30 ноября 2011

Здесь я разрабатываю приложение. Я не мог изменить вид сборщика в ландшафтном режиме. Вот мой код

  -(IBAction) showPicker:(UIControl *)sender
   {
UIActionSheet *menu = [[UIActionSheet alloc] initWithTitle:@""
                                                  delegate:self
                                         cancelButtonTitle:@"Done"
                                    destructiveButtonTitle:nil
                                         otherButtonTitles:nil];
menu.tag=1;

UIPickerView *pickerView;
if (self.interfaceOrientation == UIInterfaceOrientationLandscapeLeft ||
    self.interfaceOrientation == UIInterfaceOrientationLandscapeRight)
{      

    pickerView = [[UIPickerView alloc] initWithFrame:CGRectMake(-80,70,220,0)];
    pickerView.delegate = self;
    pickerView.dataSource = self;
    pickerView.showsSelectionIndicator = YES;    

    [menu addSubview:pickerView];

    [menu showInView:self.view.superview];

    [menu setBounds:CGRectMake(0,0,320, 470)];

    [pickerView release]; 
    [menu release]; 

    NSLog(@"Landscape");
}
else 
{
    NSLog(@"Portrait");
    pickerView = [[UIPickerView alloc] initWithFrame:CGRectMake(0,70,220,0)];
    pickerView.delegate = self;
    pickerView.dataSource = self;
    pickerView.showsSelectionIndicator = YES;    

    [menu addSubview:pickerView];

    [menu showInView:self.view.superview];

    [menu setBounds:CGRectMake(0,0,320, 470)];

    [pickerView release]; 
    [menu release]; 

}
 }


 - (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component 
{
return [arrayNo count];

}
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView {
return 1;
[entered2 resignFirstResponder];
}
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
entered2.text=[arrayNo objectAtIndex:row];
[entered2 resignFirstResponder];
}
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component 
{
return [arrayNo objectAtIndex:row];
}
 - (CGFloat)pickerView:(UIPickerView *)pickerView widthForComponent:(NSInteger)component     
{
int sectionWidth = 300;
return sectionWidth;
}

В моем приложении, я создал портретный режим работает нормально. Но когда я пытаюсь написать код в ландшафтном режиме, он может быть расположен неправильно. Как я могу это сделать. Как я могу изменить ландшафтный режим. Кто-нибудь, помогите мне. Заранее спасибо.

1 Ответ

0 голосов
/ 30 ноября 2011

Вам просто нужно установить атрибуты инспектора размера следующим образом:

enter image description here

P.S. Редактировать 1 : Вы должны вернуть да в

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation

{
return YES;
 }

Редактировать 2:

Если вы делаете это так, вам не нужно условие для проверки ориентации и создайте для него рамку.

...