Tag: uipopovercontroller

将UIPopoverController放在同一位置,只更改箭头偏移量

我的目标是保持UIPopoverController相同的坐标只改变箭头偏移量。 所以基本上我有三个button触摸他们每个人显示一个popover。 当呈现这个popover它改变在屏幕上的位置,但我不想这样。 要更清楚地看看screenoshots:

在iOS 8.1下出现UIPopoverController之前的不可预知的延迟

在iOS 8.1下运行时,SDK 8.1会发生此问题,但在iOS 7下运行时不会发生此问题。仅适用于iPad。 问题出现在模拟器和硬件设备上。 下面的代码演示了一个视图控制器,它包含一行UITableView,并在其下面有一个UIButton。 点击button或在行上将popup一个popup窗口。 这在点击button时工作得很好,但是当点击tableview的行时,popover会出现一些延迟。 在我的testing中,第一次点击排行通常会出现的排名很less或根本没有延迟,但是第二次点击该排时,出现排行可能需要几秒钟的时间,而且在我点击其他地方之前通常不会出现风景。 但是,即使在第一次敲击时,延迟也会发生(特别是在硬件上进行testing时)。 我所显示的代码已经尽可能的被parsing了,同时保留了这个问题。 在我看来,UITableView在某种程度上是导致这种延迟发生的关键。 我知道一些UIPopoverController代码在iOS 8下不推荐使用。我尝试过在iOS 8中使用UIPopoverPresentationController,结果是一样的:Popover出现之前有时很长的延迟。 我还不是很熟悉这种新的方法,所以我可能会犯错误,但在任何情况下,可以通过将USE_TRADITIONAL_METHODmacros设置为0而不是1来testingiOS 8代码。 任何build议如何解决或绕过(虽然仍然使用tableview)将不胜感激。 #import "MyViewController.h" @interface MyViewController () @property (nonatomic) UIPopoverController* myPopoverController; @end @implementation MyViewController – (void)viewDidLoad { [super viewDidLoad]; // setup table view UITableView* tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, 500, 500) style:UITableViewStyleGrouped]; [self.view addSubview:tableView]; tableView.autoresizingMask = UIViewAutoresizingFlexibleHeight | […]

长时间在UITextView的单词中获取单词

现在我已经在UITextView中检测到很长时间了 – (void)viewDidLoad { [super viewDidLoad]; UILongPressGestureRecognizer *LongPressgesture = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(handleLongPressFrom:)]; [[self textview] addGestureRecognizer:LongPressgesture]; longPressGestureRecognizer.delegate = self; } – (void) handleLongPressFrom: (UISwipeGestureRecognizer *)recognizer { CGPoint location = [recognizer locationInView:self.view]; NSLog(@"Tap Gesture Coordinates: %.2f %.2f", location.x, location.y); } 现在,我应该怎么做才能得到长时间的单词的内容,并得到这个单词的准备,以显示PopOver?

自定义UIPopoverBackgroundView:没有阴影

我用这个很好的教程来创build一个自定义的UIPopoverBackgroundView类。 它运作良好。 唯一的问题是,我没有得到典型的UIPopoverController阴影,我想要的。 我已经尝试在我的UIPopoverBackgroundView实例的层上指定它,但没有成功。 我的UIPopoverController实例似乎没有公共视图来操作。 将它添加到popover内容也是行不通的。 可能很简单: 如何在使用自定义UIPopoverBackgroundView类时添加投影? // UIPopoverBackgroundView.m -(id)initWithFrame:(CGRect)frame{ if (self = [super initWithFrame:frame]) { _borderImageView = [[UIImageView alloc] initWithImage:[[UIImage imageNamed:@"bg-popover.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(CAP_INSET,CAP_INSET,CAP_INSET,CAP_INSET)]]; _arrowView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"bg-popover-arrow.png"]]; [self addSubview:_borderImageView]; [self addSubview:_arrowView]; self.layer.shadowOffset = CGSizeMake(50, 50); self.layer.shadowColor = [[UIColor blackColor] CGColor]; } return self; }

如何从一个视图控制器popup到另一个视图控制器

使用iOS我现在有15个ViewController我想从一个ViewControllerpopup到另一个View Controller。 我正在使用这个代码: SecondViewController *Sec=[SecondViewController alloc]init]; [self.navigationController popViewController:Sec animated:YES]; 这显示错误, this ViewController not exist ,然后我使用这个代码: NSArray *array = [self.navigationController viewControllers]; [self.navigationController popToViewController:[array objectAtIndex:1] animated:YES]; 这个代码是正确的从thirdViewControllerpopup到secondViewController。 但是当我们从第九(第九)ViewControllerpopup到第五(第五)ViewController时发生了什么,然后我在第九(第九)ViewController中使用这个代码: NSArray *array = [self.navigationController viewControllers]; [self.navigationController popToViewController:[array objectAtIndex:4] animated:YES]; 它不会从第九(9)视图控制器到第五(第五)视图控制器,除了它将第九(9)视图控制器popup到八(8)视图控制器。 当我们使用这一行时,我不知道发生了什么事情: NSArray *array = [self.navigationController viewControllers]; NsLog(@"array = %@",array); 当我们在Ninth(9th)ViewController使用这个。 NsLog显示: array= First(1st)ViewController; Second(2nd)ViewController; Eight(8th)ViewController; Ninth(9th)ViewController; 我不知道为什么只有四个视图控制器显示。 每当我使用15个视图控制器。 每个视图控制器中会发生此问题。 […]

UIPopoverController中的UIImagePickerController不显示iOS7上的取消button

我使用UIPopoverController中的UIImagePickerController从相册中select图像。 当我在运行iOS 8的设备上启动应用程序时,popup窗口右上angular的“取消”button正常显示如下: 但是,当我在运行iOS 7的设备上启动应用程序时,“取消”button消失: 我用来显示select器的代码: UIImagePickerController *pickerController = [[UIImagePickerController alloc] init]; [pickerController setSourceType:UIImagePickerControllerSourceTypePhotoLibrary]; pickerController.delegate = self; _popOver = [[UIPopoverController alloc] initWithContentViewController:pickerController]; _popOver.delegate = self; pickerController.navigationBar.tintColor = [UIColor redColor];//Cancel button text color [pickerController.navigationBar setTitleTextAttributes:@{NSForegroundColorAttributeName: [UIColor blackColor]}];// title color if (isImage) { [pickerController setMediaTypes:@[(NSString*)kUTTypeImage]]; } else [pickerController setMediaTypes:@[(NSString*)kUTTypeMovie]]; [_popOver presentPopoverFromRect:CGRectMake(1024/2, 768/2, 1, 1) inView:self.view permittedArrowDirections:0 animated:YES]; […]

检测UIPopoverController何时完成呈现UIImageViewcontroller

我有UIImagePickerController作为UIPopoverController的内容视图控制器。 我需要检测popover刚刚完成时(刚刚出现)。 UIPopoverController没有任何代表。 我似乎无法find一种方法来检测UIImagePickerController以及。 (这是iPad) 有什么build议么? // UIImagePickerController let's the user choose an image. UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init]; imagePicker.delegate = self; self.popover = [[UIPopoverController alloc] initWithContentViewController:imagePicker]; self.popover.delegate = self; [self.popover presentPopoverFromBarButtonItem:self.openPhotosButton permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];

UIPopoverController的位置

我正在开发一个应用程序,这个应用程序应该是通用的,一个用于iPad和iPhone的应用程序。 我想保持它们的接口尽可能相似。 在iPhone应用程序中,我使用了一个选项卡栏控制器,其中一个选项卡会转到图像选取器控制器。 很明显,我不能在iPad上做到这一点。 所以我已经劫持了该button的控制,以带有一个popup在图像select器中的popupcontroller。 这一切都工作得很好,除非我popuppopup窗口,它不是在正确的位置。 当我旋转模拟器,popup去正确的地方,并保持我甚至回转。 我的代码是基于这个问题的代码: Ipad UIImagePickerController和UIPopoverController错误 为什么我的popup不在正确的位置?

如何将parameter passing给导航控制器内的弹窗视图控制器

我在detailviewcontroller的导航栏中有一个带有分割视图和右侧栏button的iPad应用程序。 此button调用由导航控制器和两个表视图组成的popup窗口。 如下图所示 由于故事板上的图片很小,我添加了一些解释。 White控制器是detailViewController(位于splitviewcontroller的右侧),位于导航控制器内部。 白色视图右侧的三个视图是从左到右:navigationController,firstTableView,secondTableView。 我的问题是我需要传递参数到第一个表视图来正确configuration它。 我使用这样做时,视图控制器共享相同的导航控制器。 – (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { if([[segue identifier] isEqualToString:@"popoverButtonSegue"]){ MyPopoverFirstTableViewController *popoverFirstTVC = [[MyPopoverFirstTableViewController alloc] init]; popoverFirstTVC = segue.destinationViewController; popoverFirstTVC.property1 = aProperty1; popoverFirstTVC.property2 = aProperty2; } } 我的问题是,我得到一个错误,因为目标控制器不是我的popoverFirstTableViewController,但NavigationController和导航控制器当然不haver“property1”和“property2”。 也许这是一个基本的问题,但我卡在这里。 我该怎么做configuration我的tableview通过分配一些它的属性,当这个表是在导航控制器中定义的?

UIPopoverController不在iPad的iOS 8中呈现

我在iOS 8 iPad中使用UIPopoverController imagepicker它在iOS 7中工作,但不在iOS 8中。popup窗口不显示, popoverControllerDidDismissPopover立即调用。请提出解决scheme..在这里使用的代码: UIPopoverController *popVC= [[UIPopoverController alloc] initWithContentViewController:pickerController]; _pop = popVC; _pop.delegate = self; [_pop presentPopoverFromRect:attachBtnFrame inView:_sender permittedArrowDirections:UIPopoverArrowDirectionAny animated:NO]; 谢谢..