2

ipadのカメラをクリックして開いているときにpopoverviewの問題があり、そのようなコードを書きました

-(IBAction)business_takephotobtnClicked   // click the button show the popoverview

{ 

NSLog(@"business_takephotobtnClicked");
    appdelegate.takePhoto=2;

    popover = [[UIPopoverController alloc] 
               initWithContentViewController:imgclass];

    popover.popoverContentSize =  CGSizeMake(138,66);
    [popover presentPopoverFromRect:popbtn_business.bounds inView:popbtn_business 
    permittedArrowDirections:UIPopoverArrowDirectionUp + 
    UIPopoverArrowDirectionLeft 
    animated:YES]; 
}





-(IBAction) takePhoto:(id)sender // to open the camera

{




    if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) 
    {

       self.contentSizeForViewInPopover=CGSizeMake(138,66);




        UIPicker.sourceType = UIImagePickerControllerSourceTypeCamera;
        [self presentModalViewController:self.UIPicker animated:YES];

    }
    else {
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:nil message:@"Camera is not available" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:nil];
        [alert show];
        [alert release];


    }

}

ボタンをクリックする前に、そのようなポップオーバーが表示されますここに画像の説明を入力

写真を撮る(ニーム写真ボタン)をクリックしながら、ポップオーバービューのサイズは自動的に拡張されます。ここに画像の説明を入力

しかし、カメラも開いているときに同じサイズの popoverview が必要です

前もって感謝します......

4

1 に答える 1

5

XIB を使用する代わりに、プログラムでカメラ ビューを作成し、次のようにします。

-(IBAction)popbtn_Click:(id)sender
{
    UIViewController* popoverContent = [[UIViewController alloc] init];
    UIView* popoverView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 230, 180)];
    popoverView.backgroundColor = [UIColor whiteColor];

    take_btn=[UIButton buttonWithType:UIButtonTypeRoundedRect];
    [take_btn setTitle:@"Take" forState:UIControlStateNormal];
    take_btn.frame=CGRectMake(2,2, 250, 60);
    [take_btn addTarget:self action:@selector(take_btnclick:) forControlEvents:UIControlEventTouchUpInside];
    [popoverView addSubview:take_btn];
}

-(void)take_btnclick:(id)sender
{
    [popoverController dismissPopoverAnimated:YES];

    if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera])
    {
        UIPicker.sourceType = UIImagePickerControllerSourceTypeCamera;
        [self presentModalViewController:self.UIPicker animated:YES];

        [popoverController dismissPopoverAnimated:YES];
    }
    else {
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:nil message:@"Camera is not available" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:nil];
        [alert show];
        [alert release];
    }

    if (popoverController != nil)
    {
        [popoverController dismissPopoverAnimated:YES];
    }
}
于 2012-08-01T11:27:05.743 に答える