2011-12-27 83 views
1

在我的通用IOS4应用程序中,我在我的xib中有一个UITableview,并使用我的UITableViewController控制它。正如你所知,tableview默认覆盖了顶部导航栏左侧窗口中的所有区域和底部的工具栏。iPhone:如何在UITableView上添加UILabel?

我想是添加另一个UIComponent(可能是一个大的UILabel)刚刚下了导航栏,并将滚动的tableview不到那的UILabel,所以的UILabel不滚动,但只有表是

我怎样才能做和控制?

感谢

+0

听起来像是你想定制的tableview头。我会探索你的标题选项,并看看你想出了什么。 – 2011-12-27 15:29:19

+0

你的另一个选择是创建你自己的视图,并直接添加tableview到它,让你控制tableview的尺寸。然后,您可以为自己的标签留下自己的空间。 – 2011-12-27 15:30:31

+0

@Bill Brasky可以通过创建我自己的观点来解释你的意思吗? – Spring 2011-12-27 15:34:24

回答

1

我会建议不要随意使用UITableViewCOntroller。如果您使用UITableVIewCOntroller来简化您使用委托和数据源的方式,那么您将不得不面对这种定制问题。

您将有以下的问题,如果你的UITableViewController:

  1. 不能将背景设置为自定义的UIImage。你只能设置UITableView的BG属性。如果您使用自定义VC并向其添加UITableView。您可以完全自定义在视图,窗口视图的顶部和顶部保留的内容。

  2. 根本看不出静态标题视图。因为如果您使用UITableVC,则只能使用Table View的数据源方法创建默认标题。但是,如果您使用自定义VC并向其添加TableView,则可以将自己的自定义标题或控件添加为标题。

唯一的优势,如果你使用一个UITableViewController是,如果你在你的表视图有UITextFields,UITableViewController中会自动滚动隐藏的文本字段键盘上面,如果你开始编辑一个你会有的。

我不会建议你添加任何内容的UIWindow,因为只有首先添加视图窗口将获得旋转事件

http://developer.apple.com/library/ios/#qa/qa1688/_index.html

1

一个简单的想法是有其他的UIViewController(我们称之为a_viewController),并设置实现代码如下(我们称之为a_tableView)和标签(samewise,a_label)作为其子视图。

[a_viewController.view addSubview:a_tableView] 
[a_viewController.view addSubview:a_label]; 

如果希望标签在滚动时保持不变,TableView标题可能不起作用。

但是,如果您在tableview中只有一个部分,则部分标题可能会变成一个方便的选项。

Can i make a table's tableHeaderView position fixed as I scroll?

3

你别管了,我认为这将滚动表。

您可以将节标题设置为下面的视图。如果您只有一个部分,这可能会有效。最好的解决方案是更改为UIViewController。

编程头添加到表

UIView *view = [[[UIView alloc] initWithFrame:CGRectMake(0,0,320,30)] autorelease]; 
UILabel *label = [[[UILabel alloc] initWithFrame:CGRectMake(0,0,50,30)] autorelease]; 
label.text = "Hello"; 
[view addSubview:label]; 
self.tableView.tableHeaderView = view; 
1

之一是,你可以在UIWindow添加的方式。但要确保你正确地处理它,而导航意见...关注的是这样的......

UIWindow* window = [UIApplication sharedApplication].keyWindow; 
if (!window) 
    window = [[UIApplication sharedApplication].windows objectAtIndex:0]; 
[[[window subviews] objectAtIndex:0] addSubview:myView]; 

创建UILabel实例(MyView的),并将其添加为UIWindow子视图...

相关问题