返回UITableView最后一行的不同单元格

时间:2013-05-29 21:40:30

标签: ios xamarin.ios

我的应用使用UITableview显示图片供稿。 API只能同时提供如此多的图像,因此我希望tableview中的最后一个单元格是具有Load More Button的小单元格。为此,我创建了一个名为LoadMoreCell的自定义单元格,其标识符为LoadCell

使用GetCell方法:

    public override UITableViewCell GetCell (UITableView tableView, MonoTouch.Foundation.NSIndexPath indexPath)
    {
        // request a recycled cell to save memory
        FeedCell cell = tableView.DequeueReusableCell (cellIdentifier) as FeedCell;

        if(indexPath.Row >= tableItems.Count)
        {
            LoadMoreCell loadCell = tableView.DequeueReusableCell ("LoadCell") as LoadMoreCell;
            return loadCell;
        }
        //Set Date and title
        cell.SetInfo (ids[indexPath.Row], userID, tableItems [indexPath.Row]);
        cell.SetImage (images[indexPath.Row]);
        cell.parent = this.parent;
        return cell;
    }

这为我提供了一个底部带有Load More Button的单元格,但该单元格与FeedCell的尺寸相同,而不是LoadMoreCell的较小尺寸

任何人都知道我的问题可能是什么?

2 个答案:

答案 0 :(得分:2)

您可能需要在UITableViewSource

中覆盖GetHeightForRow
public override float GetHeightForRow (UITableView tableView, MonoTouch.Foundation.NSIndexPath indexPath)
{
     if (indexPath.Row >= tableItems.Count) {
           return loadMoreHeight;
     } else {
           return regularRowHeight;
     }
}

答案 1 :(得分:0)

UITableViewDelegate有一个方法tableView:heightForRowAtIndexPath:你可以在那里返回单元格的高度。