Как получить UITableView с помощью кнопок «Выбрать все» и «Отменить выбор всех» - PullRequest
1 голос
/ 26 октября 2011

Мне нужна дополнительная кнопка для просмотра таблицы, например selectall или deselectall.
cell.Accessory = UITableViewCellAccessory.None;Я хочу, чтобы пример кнопки: «выбрать все» Когда пользователь коснется этой кнопки, аксессуар каждой ячейки должен поставить галочку.Или я хочу кнопку «Сброс».если пользователь дотронется до этой кнопки, все галочки исчезнут, а вспомогательный элемент Cell не исчезнет.

Ответы [ 2 ]

5 голосов
/ 31 октября 2011

Как вы, вероятно, узнали, использование UITableView немного сложнее.Однако есть замечательная библиотека для MonoTouch под названием MonoTouch.Dialog , которая делает все намного проще.

В следующем примере кода MonoTouch.Dialog используется для ответа на ваш вопрос (насколько я понимаюдайте мне знать, если мой ответ не соответствует вашему желанию).

    UIBarButtonItem [] selection_buttons;

    void Process (IList<Element> list, bool value)
    {
        foreach (Element e in list) {
            CheckboxElement cb = e as CheckboxElement;
            if (cb == null)
                continue;
            cb.Value = value;
            cb.GetImmediateRootElement ().Reload (cb, UITableViewRowAnimation.None);
        }
    }

    void Test ()
    {
        Section s = new Section ("Select items");
        for (int i = 0; i < 10; i++)
            s.Add (new CheckboxElement (i.ToString ()));
        var root = new RootElement (String.Empty);
        root.Add (s);

        var dv = new DialogViewController (root, true);

        // keep buttons in a field, not a local variable, to ensure it won't be GC'ed away
        if (selection_buttons == null) {
            selection_buttons = new UIBarButtonItem [] { 
                new UIBarButtonItem ("Deselect All", UIBarButtonItemStyle.Plain, delegate {
                    Process (s.Elements, false);
                }),
                new UIBarButtonItem ("Select All", UIBarButtonItemStyle.Plain, delegate {
                    Process (s.Elements, true);
                })
            };
        }

        dv.NavigationItem.SetRightBarButtonItems (selection_buttons, true);
        NavigationController.PushViewController (dv, true);             
    }

Веселитесь с MonoTouch (и MonoTouch.Dialog)!

2 голосов
/ 09 ноября 2012

Вы можете оформить эту демонстрацию с developer.apple.com. Надеюсь, это поможет вам.

...