在可变时间间隔后更改tableview中突出显示的单元格

时间:2017-10-06 20:48:00

标签: ios swift timer tableview

我必须在播放按钮单击时突出显示tableview的第一个单元格然后我有一个时间间隔数组,突出显示的单元格在该时间间隔保持不变。任何解决方案帮助请。

2 个答案:

答案 0 :(得分:0)

我基于对这个问题的理解来回答这个问题。您可能会在一段时间后突出显示tableview单元格。

[NSTimer scheduledTimerWithTimeInterval:2.0
    target:self
    selector:@selector(targetMethod:)
    userInfo:nil
    repeats:YES];


- (void)targetMethod {
NSIndexPath *defaultIndexPath = [NSIndexPath indexPathForRow:Any_Row_Number inSection:Any_Section_Number];
[self tableView:[self tableView] didSelectRowAtIndexPath:defaultIndexPath];
}

答案 1 :(得分:0)

您可以这样使用:

var lastSelectedIndexPath: IndexPath?

func viewDidLoad() {
     Timer.scheduledTimer(timeInterval: 2.0, target: self, selector: #selector(timerFunc), userInfo: nil, repeats: true)
}
@objc func timerFunc() {
    if lastSelectedIndexPath != nil {
        tableView(self.table, didUnhighlightRowAt: lastSelectedIndexPath!)
    }
    tableView(self.table, didHighlightRowAt: IndexPath(row: YOUR_ROW, section: YOUR_SECTION))
}

func tableView(_ tableView: UITableView, didHighlightRowAt indexPath: IndexPath) {
    let cell = tableView.cellForRow(at: indexPath)
    cell?.backgroundColor = UIColor.red
    lastSelectedIndexPath = indexPath
}

func tableView(_ tableView: UITableView, didUnhighlightRowAt indexPath: IndexPath) {
    let cell = tableView.cellForRow(at: indexPath)
    cell?.backgroundColor = UIColor.clear 
}