如何在 UIView 中嵌入表格视图,类似于在 iBooks 中用于字体选择的方式?
Posted
技术标签:
【中文标题】如何在 UIView 中嵌入表格视图,类似于在 iBooks 中用于字体选择的方式?【英文标题】:How do I embed a table view within a UIView similar to how it's done in iBooks for font selection? 【发布时间】:2013-04-02 18:10:42 【问题描述】:我想实现类似于 iBooks 如何在 UIView 内嵌入 UITableView 以进行字体选择的东西,但我不确定如何。谁能解释一下如何实现这种效果?
(注意:这是针对 iPhone 的。)
【问题讨论】:
到目前为止您尝试过什么?添加UITableView
作为普通UIView
的子视图没有问题,但您需要提供UITableViewController
或数据源才能使其正常工作。然而,这应该是标准程序(挖掘一些关于此的教程)。还是我误会了你?
如果数据源是静态的,是否需要数据源?
好吧,如果你使用自定义的UITableViewController
,那么这个作为UITableView
的数据源,你只需要相应地实现它。 - 如果您将此“弹出窗口”移动到单独的 nib 文件并通过界面生成器进行设计,您应该能够根据需要使用静态单元格添加数据。
我是在 iPhone 上做的(那张截图只是一个例子),所以我正在以编程方式设计它。我有一个 UITableView 作为类实例变量,但我对如何启动它、呈现它、设置它的委托和一切感到困惑。当我想将它添加到现有的 UIViewController 时,大多数教程似乎都概述了如何使用自定义 UITableViewController。
您希望它如何呈现?您展示的图片可能是 UITableViewController 作为弹出框的内容控制器。您需要指定您希望它在 iPhone 上的显示方式。
【参考方案1】:
您可以使用 UIPopover 控制器。 SettingsViewController 只是一个带有 tableview 的普通 ViewController。试试这样的:
-(IBAction)settings:(id)sender
if (_poController != nil && [_poController isPopoverVisible] == YES)
if ([_poController.contentViewController isKindOfClass:[SettingViewController class]])
return;
else
[_poController dismissPopoverAnimated:NO];
SettingViewController* vc = [[SettingViewController alloc] initWithNibName:@"SettingsViewController" bundle:nil];
UINavigationController *navController= [[UINavigationController alloc] init];
[navController pushViewController:vc animated:NO];
CGRect f = vc.view.frame;
f.size.height = 237.0f;
f.size.width = 350.0f;
vc.view.frame = f;
vc.modalPresentationStyle = UIModalPresentationFormSheet;
vc.contentSizeForViewInPopover = CGSizeMake(350.0f, 237.0f);
if (_poController == nil)
_poController = [[UIPopoverController alloc] initWithContentViewController:navController];
_poController.contentViewController = navController;
vc.controller = _poController;
[_poController presentPopoverFromRect:_settings.frame
inView:_buttonsView
permittedArrowDirections:UIPopoverArrowDirectionUp
animated:YES];
[vc release];
[navController release];
【讨论】:
我真的应该更具体一些,但我是在 iPhone 上做的。那个截图只是显示了我想要的效果。【参考方案2】:不确定它是否正是您想要的,但您也许可以使用它:
http://www.cocoacontrols.com/controls/wepopover
它在 iPhone 上可用。 Cocoa 控件也是很多自定义控件的好来源,我以前用过。
【讨论】:
以上是关于如何在 UIView 中嵌入表格视图,类似于在 iBooks 中用于字体选择的方式?的主要内容,如果未能解决你的问题,请参考以下文章