2011-09-15 169 views
1

舉例來說,我想要編輯突出顯示狀態的標題,這可能嗎?是否可以編輯UITableViewCellAccessoryDe​​tailDisclosureButton屬性?

我知道這是可能的自定義UIButtons,但是有可能編輯UITableViewCellAccessoryDetailDisclosureButton的屬性?

如果沒有,是否可以創建自定義按鈕並仍然調用UITableView委託方法? 如果是這樣,如何通過自定義按鈕單元中的indexPath

乾杯!

+0

將標記設置爲indexPath.row然後您可以根據行激發操作 – Srinivas

回答

1

你可以創建一個自定義UIButton並將其分配給您的單元格的accessoryView屬性。 如果你想做某事。真正爲單元格突出顯示的狀態定製,您應該考慮子類化UITableViewCell並覆蓋setSelected:animated:

1

,爲自button.tag=indexPath.row和訪問行沒有。從按鈕標籤

例如: -

UIButton *deleteButton = [UIButton buttonWithType:UIButtonTypeCustom]; 
    [deleteButton setFrame:CGRectMake(285, 5, 30, 30)]; 
    deleteButton.contentMode = UIViewContentModeScaleAspectFill;  
    UIImage *newImage12 = [UIImage imageNamed:@"x.png"]; 
    deleteButton.tag = indexPath.row; 
    [deleteButton setBackgroundImage:newImage12 forState:UIControlStateNormal]; 
    [deleteButton setBackgroundImage:newImage12 forState:UIControlStateHighlighted]; 
    [deleteButton addTarget:self action:@selector(deleteRemindersMethod:) forControlEvents:UIControlEventTouchUpInside]; 
    [cell.contentView addSubview:deleteButton]; 

-(void)deleteRemindersMethod:(UIButton *)sender 
{ 
    int rowNO=sender.tag; 
} 
1

據我所知,你必須設定自己的按鈕,附屬視圖。有幾種方法來獲取indexPath,我的首選是讓使用locationInView:然後indexPathForRowAtPoint:得到你所需要的實際indexPath觸摸座標:

CGPoint location = [sender locationInView:self.tableView]; 
NSIndexPath *indexPath = [self.tableView indexPathForRowAtPoint:location]; 
UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:indexPath]; 

(從here採取代碼)

相關問題