Как я могу создать EntryElement с пользовательским стилем с MonoTouch.dialog?

Я пытаюсь создать пользовательский элемент ввода с помощью monotouch.dialog. Я понимаю, как создать подкласс StringElement для стилизации моих собственных строковых элементов — см. пример ниже:

public class CustomStyledStringElementPlain : MonoTouch.Dialog.StyledStringElement
{
    public CustomStyledStringElementPlain (string _caption, UIColor _backgroundcolour, UITextAlignment _alignment) : base(string.Empty,string.Empty)
    {
        TextColor = UIColor.White;
        Font = UIFont.FromName ("Helvetica-Bold", 14f);
        Caption = _caption;
        Alignment = _alignment;
        BackgroundColor = _backgroundcolour;
    }
}

Однако при создании подкласса EntryElement я не могу получить доступ к свойствам, например, для BackgroundColor (это главное, что я хочу изменить!) Вот что у меня есть до сих пор... Любые указатели или советы о том, как я мог бы изменить цвет фона или другие элементы стиля ввода будут высоко оценены!

public class CustomStyledEntryElementPlain : MonoTouch.Dialog.EntryElement
{
    public CustomStyledEntryElementPlain (string _caption, UIColor _colour, UITextAlignment _alignment) : base(string.Empty,string.Empty)
    {
        ReturnKeyType = UIReturnKeyType.Done;
        Caption = _caption;
    }
}

person Shogan    schedule 27.03.2013    source источник


Ответы (1)


Чтобы настроить элемент MonoTouch.Dialog, вы можете переопределить метод GetCell и установить желаемый внешний вид объекта ячейки. Что-то вроде этого:

public override UITableViewCell GetCell(UITableView tableView) {
    var cell = base.GetCell(tableView);
    cell.BackgroundColor = _colour;
    return cell;
}
person NilsH    schedule 28.03.2013
comment
Спасибо NilsH, красиво и легко! Теперь я хорошо просмотрел свойства и могу изменить все цвета текста и фона. Я не видел ничего, чтобы изменить цвет или ширину границы ячейки. Эти свойства не существуют? Было бы лучше использовать UIImage для фона ячейки, чтобы получить то, что я хочу? - person Shogan; 28.03.2013
comment
Если вам нужна полная свобода, вы можете заменить любое представление в UITableViewCell, которое хотите. Ознакомьтесь с документацией по API для UITableViewCell. - person NilsH; 28.03.2013
comment
* Редактировать - я вижу, что могу получить доступ к свойству ячейки .Layer, а затем настроить там элементы... Я могу нарисовать прямоугольник вокруг своей ячейки, но старый закругленный белый прямоугольник остался позади... Любые идеи относительно того, как Я удаляю это? Скриншот для иллюстрации: dl.dropbox.com/u/1230453/example.png - красная рамка - это то, что я сделал, используя свойства слоя, но белая рамка - это то, что все еще остается позади - есть идеи, как изменить этот цвет или, альтернативно, удалить его, чтобы вместо этого я мог использовать красную рамку? - person Shogan; 28.03.2013