MonoTouch UITableViewController и TableFooterView - PullRequest
2 голосов
/ 29 октября 2011

Я пытаюсь разработать небольшое приложение для iPhone, используя MonoDevelop (v2.8) и MonoTouch (v4.2.2).

Мой домашний экран представлен UITableViewController, который использует UITableView для презентации.Я хочу заполнить UITableView.TableFooterView (который является объектом UIView) некоторыми другими элементами управления (две метки и две кнопки).

Для этого я создал «подпредставление» под названием SearchView, которое представленоUIViewController и использовать простой UIView для презентации.Я назначаю это представление как представление нижнего колонтитула представления таблицы.

public partial class HomeScreen : UITableViewController
{    
    public override void ViewDidLoad()
    {
        base.ViewDidLoad();

        SearchViewController searchViewController = new SearchViewController();
        this.TableView.TableFooterView = searchViewController.View;

    }
}

Это правильно?

Правильно ли предположить, что обычно вы создаете представление (UIView) и используете его с помощью UIViewController?

Ответы [ 2 ]

1 голос
/ 29 октября 2011
- (void)loadView {
[super loadView];
sBar = [[UISearchBar alloc]initWithFrame:CGRectMake(0,0,320,30)];
sBar.delegate = self;
[self.view addSubview:sBar];

вы можете добавить такие подпредставления, как sbar, панель поиска, вы также можете добавить в нее любые контроллеры, такие как кнопки, метки, текстовое представление, текстовое поле.

0 голосов
/ 30 октября 2011

В вашем 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

...