我正在尝试使用MonoDevelop(v2.8)和MonoTouch(v4.2.2)开发一个小型iPhone应用程序。
我的主屏幕由UITableViewController表示,它使用UITableView进行演示。我想用其他一些控件(两个标签和两个按钮)填充UITableView.TableFooterView(这是一个UIView对象)。
为此,我创建了一个名为SearchView的“子视图”,它由UIViewController表示,并使用简单的UIView进行演示。我将此视图指定为tableview的页脚视图。
public partial class HomeScreen : UITableViewController
{
public override void ViewDidLoad()
{
base.ViewDidLoad();
SearchViewController searchViewController = new SearchViewController();
this.TableView.TableFooterView = searchViewController.View;
}
}
这是对的吗?
假设你通常使用UIViewController创建一个视图(UIView)并使用它是正确的吗?
答案 0 :(得分:1)
- (void)loadView {
[super loadView];
sBar = [[UISearchBar alloc]initWithFrame:CGRectMake(0,0,320,30)];
sBar.delegate = self;
[self.view addSubview:sBar];
你可以添加这样的子视图,sbar是搜索栏,你也可以添加任何控制器,如按钮,标签,textview,textfield。
答案 1 :(得分:0)
在你的UITableViewDataSource中你可以覆盖公共虚拟UIView GetViewForFooter(UITableView tableView,int sectionIndex)
public override UIView GetViewForFooter(UITableView tableView, int sectionIndex)
{
// Write a method to get the proper Section via the sectionIndex
var section = GetSection(sectionIndex);
if (section != null)
{
if (section.FooterView == null && !string.IsNullOrEmpty(section.FooterText))
{
// Create your FooterView here
section.FooterView = CreateFooterView(tableView, section.FooterText);
}
return section.FooterView;
}
return null;
}
从iOS 5开始,您还需要覆盖
public virtual float GetHeightForFooter(UITableView tableView, int sectionIndex)
并返回FooterView的高度