2015-02-25 2 views
3

Я хочу показать индикатор раскрытия информации в моей ячейке просмотра таблицы для iOS. Я нашел this thread и был создан пользовательский рендерер. Я попытался это:Xamarin.Forms: Пользовательский рендеринг для отображения индикатора раскрытия информации на UITableViewCell

[assembly: ExportRenderer (typeof (EmployeeCell), typeof (EmployeeCellRenderer))] 

namespace HelloXamarinFormsWorld.iOS 
{ 
    public class EmployeeCellRenderer : Xamarin.Forms.Platform.iOS.ViewCellRenderer 
    { 
     public override UITableViewCell GetCell (Cell item, UITableView tv) 
     { 
      var cell = base.GetCell (item, tv); 

      cell.Accessory = UITableViewCellAccessory.DisclosureIndicator; 

      return cell; 
     } 
    } 
} 

Этот файл называется EmployeeCellRenderer и может быть найден в корневом каталоге решения IOS. Такой пользовательский рендерер также можно найти here.

Если я хочу, чтобы скомпилировать это я получаю

CS0115 Ошибка: `HelloXamarinFormsWorld.iOS.EmployeeCellRenderer.GetCell (Xamarin.Forms.Cell, UIKit.UITableView)» отмечен как переопределение, но не подходящего способа найдено переопределить (CS0115) (HelloXamarinFormsWorld.iOS)

это мой включает в себя:

using System; 
using HelloXamarinFormsWorld; 
using Xamarin.Forms; 
using HelloXamarinFormsWorld.iOS; 
using UIKit; 

Как я могу добавить раскрытия indicat или в ячейку просмотра таблицы?

ответ

3

Подпись GetCell() изменен. Это сейчас:

public override UIKit.UITableViewCell GetCell (Xamarin.Forms.Cell item, UIKit.UITableViewCell reusableCell, UIKit.UITableView tv) 
{ 
    return base.GetCell (item, reusableCell, tv); 
} 

Причина изменения - поддержка повторного использования ячеек.

Самый простой способ понять эти вещи - просто ввести override в свой файл кода, а затем пробел. Затем Intellisense покажет все переопределяемые методы базового класса (es).

+0

Бонусный вопрос: знаете ли вы, как бороться с отступом при использовании индикатора раскрытия? – testing

+0

Не знаете, что вы имеете в виду? – Krumelur

+0

Я добавлю скриншот к моему вопросу. Подождите 1 или 2 минуты ... – testing