如何以编程方式选择UITableView单元格(Swift 2)

时间:2016-03-22 15:19:16

标签: ios swift

我有一个UITableViewController,我需要选择并在视图加载时滚动到其中一个单元格。我需要选择单元格而不是仅仅选择单元格(使用附件或其他)的原因是我希望它具有不同的背景并且上方/下方没有分隔符(这是选择表格单元格时会发生的情况),我希望细胞最初可见(如果它太远了)。

我已经阅读了另外两个答案但他们没有工作或者我不理解他们。我不知道应该将self.tableView.selectRowAtIndexPathself.scrollToRowAtIndexPath放在哪里。我尝试将它放在viewDidLoad()中,但它没有效果。

3 个答案:

答案 0 :(得分:8)

尝试使用viewDidAppear

func viewDidAppear(animated: Bool){
    super.viewDidAppear(animated)
    let path = NSIndexPath(forRow: 1, inSection: 0)
    tableView.selectRowAtIndexPath(myPath, animated: false, scrollPosition: UITableViewScrollPosition.None)
}

答案 1 :(得分:2)

在视图控制器的viewDidAppear方法中使用UITableView的selectRowAtIndexPath方法

@login_required
def change_password(request):
    pass_form = PasswordChangeForm(user=request.user)
    if request.method == 'POST':
        pass_form = PasswordChangeForm(user=request.user, data=request.POST)
        if pass_form.is_valid():
            pass_form.save()
            return render(request,'coursework/profile.html',
                                      {'pass_form' : pass_form,
                                       'pass_msg' : 'Password Updated'})
    return render(request, 'coursework/new_password_form.html',
                              {'form': pass_form})

答案 2 :(得分:2)

Swift 4:

override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(animated)

    let path = IndexPath(row: 0, section: 0)
    tableView.selectRow(at: path, animated: false, scrollPosition: .none)
}