iPhone:如何显示弹出窗口并解除它们

时间:2011-08-17 08:16:05

标签: iphone ios

在我的通用应用程序中,我有一个带有自定义单元格的长UITableView。对于某些单元格,我可能需要显示一些关于该单元格的长弹出式解释,例如当用户单击单元格上的“i”标签时。在iPad中,popover视图似乎是最佳选择,但不知道如何在iPhone上实现这一点,有什么可能性?此外,我希望在将其用于iPad-popover视图时尽可能少花时间。我想重用一些我在iPhone上使用的代码或逻辑

事情出现在我的脑海里;

- 在警报shild中显示解释,但警报盾的当前外观和感觉是丑陋的我可以自定义它然而我喜欢并显示我在屏幕上的任何地方,如果我可以使其可滚动;

- 或许我可以将uitextview显示在顶部,但是我将如何解雇它,我需要一些按钮......这听起来很棘手。

-UIAxtview上面有uitextview,这里合理吗?

我也在S.O中找到了这个代码,但在我的情况下不知道如何使用它;

  newView.frame = CGRectMake(60, 140, 200, 200);
  [parentView addSubview:newView];

3 个答案:

答案 0 :(得分:1)

看看http://iosdevelopertips.com/open-source/ios-open-source-popover-api-for-iphone-wepopover.html。这是iPhone的Popover组件。我觉得在你的情况下效果最好。你可以谷歌“iphone popover”获得更多选择。

答案 1 :(得分:1)

我们在iPhone上为类似iPad的popovers构建了一个开源库,允许您自定义弹出窗口的外观,并将任何视图或控制器放在其中。

在Github上观看该项目并在http://www.50pixels.com/blog/labs/open-library-fppopover-ipad-like-popovers-for-iphone/

下载

在解雇时,请参阅以下说明:

知道何时显示新的弹出窗口

- (void)presentedNewPopoverController:(FPPopoverController *)newPopoverController 
  shouldDismissVisiblePopover:(FPPopoverController*)visiblePopoverController;

使用此委托方法可以了解何时显示新的不同弹出窗口。如果要关闭旧的popover并释放它,请在此方法中发送dismiss消息。

- (void)presentedNewPopoverController:(FPPopoverController *)newPopoverController 
  shouldDismissVisiblePopover:(FPPopoverController*)visiblePopoverController
{
    [visiblePopoverController dismissPopoverAnimated:YES];
    [visiblePopoverController autorelease];
}

知道弹出窗口何时被解雇

- (void)popoverControllerDidDismissPopover:(FPPopoverController *)popoverController;

使用此委托方法可以了解弹出窗口何时被解除。当用户点击弹出窗口之外或其他操作发送解雇消息时,可能会发生这种情况。

答案 2 :(得分:0)

通常,如果您在iPad上使用UIPopover,则会在iPhone上使用模态视图控制器。

因此,如果您创建UIViewController的子类(例如,名为MyViewController),并使用必要的子视图,例如UILabel。

MyViewController *infoViewController = [[MyViewController alloc] init];
//pass data to the new view controller, e.g. 
//[infoViewController setInfoText:...];
[self presentModalViewController:infoViewController animated:YES];
[infoViewController release];