自定义UITableViewCell按钮和RowSelected(iOS / Monotouch)

时间:2012-05-18 09:33:25

标签: ios uitableview xamarin.ios uibutton

我在自定义UIButton中有“加载更多”UITableViewCell。我的表也使用了委托。我想在单击此按钮时重新加载表数据。我注意到当我点击按钮时,没有任何反应。但是,当我单击按钮周围的区域(即实际的Cell)时,Delegate将获取RowSelected事件。 我尝试在按钮的内部触摸事件中使用SetSelected(true,false);来查看它是否会为代理触发RowSelected事件,但事实并非如此。

任何人都可以解释我如何点击自定义表单元格的按钮来激活实际的行选定事件吗?如果这不是一个可行的选择,除了将按钮放在自定义表格视图单元格中之外,还有更好的方法来“加载更多数据”吗?

谢谢!

更新 我使用ContentView.AddSubView,如下面的代码所示。请注意我使用的是Monotouch,但逻辑是一样的:

            public LoadMoreCell (string reuseCellIdentifier)
        :base(UITableViewCellStyle.Default, reuseCellIdentifier)
    {
        SelectionStyle = UITableViewCellSelectionStyle.None;

        _btnLoadMore = UIButton.FromType(UIButtonType.RoundedRect);
        _btnLoadMore.Frame = new RectangleF(10,5,300,30);
        _btnLoadMore.SetTitle("Load More", UIControlState.Normal);
        _btnLoadMore.UserInteractionEnabled = true;
        ContentView.AddSubview(_btnLoadMore);


    }

我有一个TableDelegate,它有一个RowSelected方法,我重新加载数据......但是,当我单击实际行时,RowSelected只会被触发。

2 个答案:

答案 0 :(得分:1)

我想你可能已经将uibutton添加为

[self addSubView:yourButton];

改为使用: -

[self.contentView addSubview:yourButton];

以及自定义单元格的所有其他控件。 在自定义单元格的初始值设定项中执行此操作: -

- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {}

答案 1 :(得分:0)

为您的表创建一个自定义UITableViewDataSource 当你点击“加载更多”按钮时,调用此数据源的方法将其他数据添加到数据源列表中,将此数据源添加到表中并确保重新加载表的数据

this.tblData.ReloadData ();