網頁

2012年12月13日 星期四

iOS開發筆記-利用UITableCell取得正確的index

使用tableView時,總會有個問題,就是資料是直接就load進來,但veiw不是,也就是往下捲動後,未呈現者才會load進view,但最近出現個狀況,就是用tag來存放到時要刪除的index,但因為後來才load進來,所以發現超出範圍的tag值只有剛好load到者會被設定,其他變成重新計算,如下圖


說實在搞不懂為什麼,但最近實在太忙,沒時間去細想問題點(大概就出在loadview這function),基本上我要刪除時,是按下按鈕後,找出這按鈕是哪一個row,對應到array中的值時,所以只要取得是點選到哪一列cell就好,改用底下的寫法就可以了

UIButton *btn = (UIButton*)sender;
//取得UITableViewCell
UIView *superView = btn.superview;
while (![superView isKindOfClass:[UITableViewCell class]]) {
  superView = superView.superview;
}
//一定有UITableViewCell,直接指定
UITableViewCell *cell = (UITableViewCell*)superView;

__delItemIndex = [__list indexPathForCell:cell].row;

這就__delItemIndex就是我們要的index值了

沒有留言:

張貼留言