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

问题描述:

我有一个'加载更多'UIButton自定义内UITableViewCell。我的桌子也使用委托。我想在单击此按钮时重新加载表格数据。我注意到,当我点击按钮时,没有任何反应。但是当我点击按钮周围的区域,即实际的单元格时,委托获取RowSelected事件。 我尝试使用SetSelected(true,false);从按钮的触摸内部事件,看看它是否会触发委托的RowSelected事件,但它没有。自定义UITableViewCell按钮和RowSelected(iOS/Monotouch)

任何人都可以解释我如何使一个自定义表单元格的按钮点击实际的行选择事件?如果这不是一个可行的选择,有没有更好的方式来'加载更多的数据',而不是将按钮放置在自定义表格视图单元格内?

谢谢!

更新: 我确实使用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); 


    } 

我已经具有RowSelected方法,我重新加载数据的TableDelegate ......然而,RowSelected只有被炒鱿鱼当我点击实际行。

+0

您重写了layoutSubViews方法吗? –

我想你可能已经添加的UIButton作为

[self addSubView:yourButton]; 

改用: -

[self.contentView addSubview:yourButton]; 

和所有的自定义单元格的其他控件。 在你的自定义单元格的初始化操作: -

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

请参阅上面的我的更新,我将它添加为contentview。 –

使自定义UITableViewDataSource为你的餐桌 ,当你按下按钮“加载更多”,称此数据源的方法向其他数据添加到数据源列表中,将此数据源添加到您的表格,并确保重新加载表格的数据

this.tblData.ReloadData();