MonoTouch - 动态更改表格末尾添加按钮

时间:2013-06-20 18:02:01

标签: c# ios xamarin.ios xamarin

我有兴趣在动态变化的表格的末尾添加一个按钮。该表在按钮单击时添加了单元格,但我希望该按钮仅在表格底部滚动到时才可见。我很想知道是否有任何关于如何解决这个问题的想法。

1 个答案:

答案 0 :(得分:2)

如何使用UIView制作UIButton并将其放入FooterView

tableView.TableFooterView = MyView;

其他解决方案是在数据单元格后添加带有按钮的UITableViewCell。这应该由UITableViewSource完成。将最后一个单元格的所有逻辑移动到抽象类是很好的,它将处理最后一个单元格功能。

创建自己的抽象 UITableViewSource(将其命名为UITableViewSourceWithFooter)的子类,其中包含:

  • UITableViewCell带按钮;
  • 方法bool IsLastCellIndexPath(NSIndexPath ip),如果last cell参数可见NSIndexPath,则返回true。代码:
    protected bool IsLastCellIndexPath(NSIndexPath ip)
    {
        return ip.Row == GetRecordsCount();
    }
  • 抽象方法GetRecordsCount()
  • RowsInSection方法。 Sealed以避免覆盖子类。他们将实施GetRecordsCount()方法:
    public sealed override int RowsInSection (UITableView tableview, int section)
    {
        return GetRecordsCount() + 1;
    }

然后实现并使用UITableViewSourceWithFooter的子类:

  • GetCell中制定一些逻辑:
   if (base.IsLastCellIndexPath(indexPath) {
       return base.cell_with_button;
   } else {
       return data_cell;
   }
  • 方法GetRecordsCount()。简单来说,就像:
     List<item_class> items;
     ...
     protected override GetRecordsCount()
     {
         return items.Count;
     }