Как добавить подзаголовок к корневому элементу MonoTouch.Dialog?

MonoTouch.Dialog RootElement, по-видимому, не имеет способа добавления субтитров. Я хотел бы отобразить подзаголовок под заголовком.

Должен ли я создать подкласс элемента и добавить собственное представление в метод GetCell?

Есть более простой вариант?


person rams    schedule 21.08.2012    source источник


Ответы (1)


Самый простой способ добиться этого — создать подкласс RootElement и переопределить метод GetCell, создать новую ячейку и установить LabelText и DetailLabelText. Это даст вам хороший подзаголовок

public override MonoTouch.UIKit.UITableViewCell GetCell(MonoTouch.UIKit.UITableView tv) {
        var baseCell = base.GetCell(tv); 
        var cell = new UITableViewCell(UITableViewCellStyle.Subtitle, "cellId");
        cell.TextLabel.Text = Caption;
        cell.DetailTextLabel.Text = _subtitle;
        cell.Accessory = baseCell.Accessory;
        return cell;
    }

Обратите внимание на стиль ячейки. К сожалению, похоже, что стиль ячейки доступен только во время построения ячейки, а не после. Таким образом, вы не можете просто вызвать base.GetCell(tv) и установить его стиль. Это был бы лучший вариант.

_subTitle — это переменная уровня класса, устанавливаемая через пользовательский конструктор.

private string _subtitle = string.Empty;

    public ChartSectionRootElement(string caption, string subTitle) : base(caption) {
        this._subtitle = subTitle;
    }
person rams    schedule 22.08.2012