2013-08-07 57 views
1

我正在製作一個iOS應用程序,它有一個Table View與原型單元格。我配置了cellForRowAtIndexpath方法中的單元格,並且工作正常,但是出現問題的地方是我想在創建按鈕後更改按鈕中的文本。我希望它能夠在按下按鈕時更改按鈕文本。我試圖做的:當按鈕是iOS自定義單元格的子視圖時,如何動態更改按鈕文本?

[button setTitle:@"Change" forState:UIControlStateNormal]; 

運行,當我點擊的按鈕clickMethod內,但無論我按哪個按鈕改變了最後一個單元格中的文本。我上面試過的東西不起作用,因爲我有同一個按鈕的多個實例(每行一個)所以有人知道我可以如何改變我點擊的按鈕的文本。創建按鈕的代碼:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath: (NSIndexPath *)indexPath 
{ 
cell = [tableView dequeueReusableCellWithIdentifier:@"Cell" forIndexPath:indexPath]; 
//configure cell 
button = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 
[button addTarget:self action:@selector(clickMethod:) forControlEvents:UIControlEventTouchUpInside]; 


[button setTitle:@"Button" forState:UIControlStateNormal] 
[button setTag:6789];//set tag so we can identify the button 
button.Frame=CGRectMake(218, 5, 99, 53); 
[cell addSubview:button];//put the button in the cell 
[cell setIndentationWidth:45]; 
[cell setIndentationLevel:1]; 
return cell;//return the cell object 

非常感謝幫助。我可以發佈更多的代碼,但我不認爲這與問題相關。 在此先感謝。

+0

請在請求前請在Google上搜索。有許多解決方案已經可用。 – TheTiger

+0

我看了之前,我什麼都找不到,但我會再看。 – user2615467

+0

而你的細胞似乎並不習慣......是嗎? – TheTiger

回答

1

您無法在按鈕上設置標題爲cellForRowAtIndexPath:方法調用多次。如果按鈕是全局聲明的,它將改變最後一個按鈕的標題。就這樣做

-(void)clickMethod:(id)sender 
{ 
    [sender setTitle:@"Change" forState:UIControlStateNormal]; 
} 

發件人將有點擊按鈕的實例。

相關問題