单击并打开 ipad 的相机时出现 uipopover 问题
Posted
技术标签:
【中文标题】单击并打开 ipad 的相机时出现 uipopover 问题【英文标题】:uipopover issues while click and open the camera for ipad 【发布时间】:2012-07-25 09:36:26 【问题描述】:我在点击并打开 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];
在点击按钮之前,弹出框像这样显示
点击拍照时(印楝照片按钮)。弹出窗口大小自动扩展,如 taht
但我在打开相机时也需要相同大小的弹出视图
提前致谢......
【问题讨论】:
查看此链接:-***.com/questions/3458722/… 【参考方案1】:而不是使用 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];
【讨论】:
以上是关于单击并打开 ipad 的相机时出现 uipopover 问题的主要内容,如果未能解决你的问题,请参考以下文章