Я хочу создать пользовательскую ячейку таблицы для своего iPhone-приложения Monodevelop и xcode 4 на основе monotouch. Я нашел эти статьи:Создать пользовательскую ячейку таблицы с помощью monodevelop и Xcode 4
http://slodge.blogspot.co.uk/2013/01/uitableviewcell-using-xib-editor.html
этим два статьи я создаю класс, как это:
[Register("ListingCell")]
public partial class ListingCell : UITableViewCell
{
public ListingCell() : base()
{
}
public ListingCell (IntPtr handle) : base(handle)
{
}
public void BindDataToCell(DrivedProperty _property)
{
LocatoinLbl.Text = _property .LocationString ;
}
public void AddImageToCell(UIImage _image){
ListingThumbnail .Image = _image ;
}
}
и я разработал мои UITableViewCell
и определенные выходов. Тогда в моем GetCell
метода, который я использовал коды, как это:
public override UITableViewCell GetCell (UITableView tableView, MonoTouch.Foundation.NSIndexPath indexPath)
{
ListingCell cell;
cell = (ListingCell) tableView.DequeueReusableCell (identifier) ;
if (cell == null) {
cell = new ListingCell();
var views = NSBundle.MainBundle.LoadNib("ListingCell", cell, null);
cell = Runtime.GetNSObject(views.ValueAt(0)) as ListingCell;
}
var item = Controller.Items [indexPath.Row];
cell.Tag = indexPath.Row;
cell .BindDataToCell (item);
cell.AddImageToCell (item .Image);
return cell;
}
Теперь Application сборки хорошо, но когда я запускаю его Debuger GetS ошибки с этой линией:
var views = NSBundle.MainBundle.LoadNib("ListingCell", cell, null);
и говорит:
MonoTouch.Foundation.MonoTouchException: Objective-C exception thrown. Name: NSInternalInconsistencyException Reason: Could not load NIB in bundle: 'NSBundle </Users/john/Library/Application Support/iPhone Simulator/6.0/Applications/08FFAA89-4AC4-490D-9C1A-4DE4CBC6EBB7/Realtyna_iPhone_Project.app> (loaded)' with name 'ListingCell'
Realy Я не знаю, для чего это. Когда я удалю его. Приложение делает аранжировку с объектом ячейки в моем классе ListingCell
. Я запустил много поисков в Интернете, но не нашел никаких решений. Есть ли у любого органа какие-либо идеи об этом?
Я обнаружил, что можно создать программную ячейку программно. и это будет работать, но проблема в том, что создание сложных ячеек программным образом во время выполнения затруднено. Просто мы создаем эти ячейки с помощью excode, но не знаем, почему он не работает: -S
Спасибо за ваш ответ. Это не работает для меня. когда я меняю 'cell = (ListCell) tableView.DequeueReusableCell (идентификатор) 'to' cell = (ListingCell) tableView.DequeueReusableCell (идентификатор, indexPath) 'приложение вызывает ошибку аргумента ivalid. Я игнорирую это и меняю 'var views = NSBundle.MainBundle.LoadNib ("ListingCell", cell, null)' to 'var views = NSBundle.MainBundle.LoadNib ("ListingCell", cell, null)' и комментирует следующую строку. Теперь приложение получает ошибку с моими объектами, такими как «LocatoinLbl» во время выполнения –
Что касается добавления изображений и ошибок памяти. Я позаботился об этом в своем методе get cell. Основывается на примере ленивого стола xamarin. –
Возможно, это связано с параметром 'nibName', который я использую в методе LoadNib. Просто я использую свой собственный класс ячеек. но, похоже, в этом вопросе http://stackoverflow.com/questions/7184206/loading-custom-table-view-cells-from-nib-files?rq=1 ответ говорит, что это другое дело. Я ошибаюсь в отношении «nibName»? –