2017-11-28 14 views
0

私は関数内でセルを取得したい(テーブルビュー機能外)。このようにしてみてください。しかし、1行目に変わると、クラッシュしました。ここでテーブルビュー機能の外でセルを取得する方法は?

は、これまでの私のコードです:

func ValueChecker(cell: UITableViewCell){ 
    let subCellInt = Int(CustomUserDefaults.shared.getSubCellRow())! 
    let cell = self.tableView.cellForRow(at: IndexPath(row: 0, section: 0)) as! BankPaymentDetailsCell 
    let mainMenuValue = CustomUserDefaults.shared.getSubCell() 
    if(mainMenuValue=="00" || mainMenuValue=="01" || mainMenuValue=="02" || mainMenuValue=="03" || mainMenuValue=="04" || mainMenuValue=="05" || mainMenuValue=="06"){ 
     selectedRow = -1 
     cell.ivExpand.transform = CGAffineTransform(rotationAngle: (180.0 * CGFloat.pi) * 180.0) 
    }else{ 
     cell.ivExpand.transform = CGAffineTransform(rotationAngle: (180.0 * CGFloat.pi)/180.0) 
    } 
    tableView.beginUpdates() 
    tableView.endUpdates() 
} 

subCellIntは私がローカルに保存indexpath.rowです。

私はこれを変更した場合:

let cell = self.tableView.cellForRow(at: IndexPath(row: subCellInt, section: 0)) as! BankPaymentDetailsCell 

それが唯一のセル番号0(最初のセル)に動作しますが、セル番号1及び2(細胞数3の場合)場合は墜落しました。

テーブルビュー機能外のセルを取得するにはどうすればよいですか?

更新: 私は外にテーブルビュー機能からテーブルビューのセルにアクセスするには、このコードを使用します。これまでの

func ValueChecker(cell: UITableViewCell){ 
    let subCellInt = Int(CustomUserDefaults.shared.getSubCellRow())! 
    let cell : BankPaymentDetailsCell = tableView.dequeueReusableCell(withIdentifier: "BankPaymentDetailsCell") as! BankPaymentDetailsCell 
    let mainMenuValue = CustomUserDefaults.shared.getSubCell() 
    if(mainMenuValue=="00" || mainMenuValue=="01" || mainMenuValue=="02" || mainMenuValue=="03" || mainMenuValue=="04" || mainMenuValue=="05" || mainMenuValue=="06"){ 
     selectedRow = -1 
     cell.ivExpand.transform = CGAffineTransform(rotationAngle: (180.0 * CGFloat.pi) * 180.0) 
    }else{ 
     cell.ivExpand.transform = CGAffineTransform(rotationAngle: (180.0 * CGFloat.pi)/180.0) 
    } 
    tableView.beginUpdates() 
    tableView.endUpdates() 
} 

、それが動作します。外部テーブルビュー機能からセルにアクセスでき、クラッシュしなくなりました。

答えて

0

テーブルビューセルは、読み込まれるのに十分な大きさのテーブルビューがある場合にのみアクセスできます。

+0

をやりたいことができます私は、テーブルビューの関数の内部テーブルビューのセルを取得する場合ので、最小1行で動作します – Sarimin

+0

はい、最初のセルが表示されなくてもデフォルトで読み込まれるためです。 – dasdom

0

外部からtableviewの任意のセルにアクセスすることはできません。 しかし、これを達成する方法があります。 あなたが可視セルの配列を取得することができ、この方法で
LET visibleCellsの=のyourTableView.visibleCells を使用することができ、あなたが、私は、そうは思わない

関連する問題